以往一直认为异步请求只能使用原生 js 的 XMLHttpRequest 或 jQuery 的 $.ajax(),$.post() 等框架封装的异步请求方法
原来 js 还提供 fetch 来替代 XMLHttpRequest, 详情可见 https://developer.mozilla.org/en-US/docs/web/API/Fetch_API/Using_Fetch
fetch
规格不同于
jQuery.ajax()
主要有两个方面牢记:
即使响应是 HTTP 404 或 500, 返回的 Promise fetch() 也不会拒绝 HTTP 错误状态. 相反, 它将正常解析 (ok 状态设置为 false), 它只会拒绝网络故障或阻止要求完成.
默认情况下, 如果站点依靠维护用户会话 (发送 cookie, 必须设置 credentials init 选项), fetch 则不会发送或接收来自服务器的任何 cookie, 从而导致未经身份 验证的请求.
fetch('https://api-to-call.com/endpoint').then(response = >{
if (response.ok) {
return response.json();
}
throw new Error('Request failed!');
},
networkError = >console.log(networkError.message)).then(jsonResponse = >jsonResponse)
来源: http://www.bubuko.com/infodetail-2479291.html