以往一直认为异步请求只能使用原生js的XMLHttpRequest或jQuery的$.ajax()、$.post()等框架封装的异步请求方法ajax
原来js还提供fetch来替代XMLHttpRequest,详情可见 https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetchjson
fetch
规格不一样于 jQuery.ajax()
主要有两个方面牢记:api
fetch()
也不会拒绝HTTP错误状态。相反,它将正常解析(ok
状态设置为false),它只会拒绝网络故障或阻止要求完成。fetch
则不会发送或接收来自服务器的任何cookie,从而致使未经身份 验证的请求。1 fetch('https://api-to-call.com/endpoint').then(response => { 2 if(response.ok){ 3 return response.json(); 4 } 5 throw new Error('Request failed!'); 6 } , networkError => console.log(networkError.message) 7 ).then(jsonResponse => jsonResponse)