Fetch
fetch是一种HTTP数据请求的方式,是XMLHttpRequest的一种替代方案。fetch不是ajax的进一步封装,而是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象。
特点
1、第一个参数是URL:
2、第二个是可选参数,可以控制不同配置的 init 对象
3、使用了 JavaScript Promises 来处理结果/回调:
Fetch默认请求是GET
fetch('server/server.js').then(result => {
console.log(result);
})
如果是POST请求的话要在第二个参数列表中,配置method: 'POST’
fetch('server/server.jsn', {
method: 'POST',
body: 'c=b',
headers: {
'Content-Type': 'x-www-form-urlcoded'
},
credentials: 'include'
}).then(result => {
console.log(result);
})
注意
- GET/HEAD 等请求不能设置 body
- 不管服务器返回的状态是多少,FETCH都不认为是失败(哪怕是4或者5开头的状态码),都执行THEN方法(需要我们自己进行异常抛出处理)
返回结果
通过回调函数并不能直接获得响应结果。其返回结果为一个对象。
headers:包含响应头信息
redirected:是否重定向
status:响应码
statusText:响应文本
type:basic/cors
url:请求地址