js fetch处理异步请求

Posted xuetp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js fetch处理异步请求相关的知识,希望对你有一定的参考价值。

以往一直认为异步请求只能使用原生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,从而导致未经身份 验证的请求
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)

 

以上是关于js fetch处理异步请求的主要内容,如果未能解决你的问题,请参考以下文章

回归 | js实用代码片段的封装与总结(持续更新中...)

如何使用 express js 处理 fetch API 请求

在 React JS 中使用 fetch 处理响应状态

ReactNative——fetch封装新姿势

Fetch请求

fetch普通用法及搭配async,await用法小记