fetch是干什么的?为什么会有fetch这个api的出现
fetch是发送网络请求的一个api;
fetch出现的原因可能是因为XMLHttpRequest太复杂了吧(这个不清楚,有懂的大佬可以只指点下)
fetch的优缺点:
缺点:
为什么先说缺点呢?我确实觉得它不好用
1. 返回值要做一次json转换
2. 当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject,即使响应的 HTTP 状态码是 404 或 500。相反,它会将 Promise 状态标记为 resolve(如果响应的 HTTP 状态码不在 200 - 299 的范围内,则设置 resolve 返回值的 ok 属性为 false),仅当网络故障时或请求被阻止时,才会标记为 reject。
3. 兼容性不好
Chrome | Edge | Firefox | Opera | Safari | nodejs |
---|---|---|---|---|---|
42 | 14 | 39 | 29 | 10.1 | 18 |
优点:请求相对XMLHttpRequest还是比较简单的。
总结:axios还是更好用:
- 请求结构简单;
- 响应报文不用再二次转换;
- 拥有符合我们使用习惯的错误返回;
- 支持响应拦截,请求拦截等。