fetch 服务器不响应,Fetch 常见的使用问题

本文探讨了fetch在浏览器中的兼容性问题,包括默认不携带cookie、不处理某些错误HTTP状态、不支持超时和取消操作,以及不支持JSONP和progress事件。针对这些问题,文章提出了解决方案,如设置credentials选项、自定义fetch封装以处理超时和错误、以及使用fetch-jsonp库实现JSONP功能。同时,fetch的跨域请求依赖于CORS,可以通过配置mode选项实现不同类型的跨域行为。
摘要由CSDN通过智能技术生成

▶fetch的浏览器兼容

c0e52dacd76146c68f3b7cf0c3e7a443.jpg

㈠fetch默认不携带cookie

⑴fetch发送请求默认是不发送cookie的,不管是同域还是跨域;

需要设置 :

fetch(url, {credentials: \'include\'})

可以配置其credentials项,其有3个值:

①omit: 默认值,忽略cookie的发送

②same-origin: 表示cookie只能同域发送,不能跨域发送

③include: cookie既可以同域发送,也可以跨域发送

⑵fetch默认对服务端通过Set-Cookie头设置的cookie也会忽略,若想选择接受来自服务端的cookie信息,也必须要配置credentials选项;

㈡fetch请求对某些错误http状态不会reject

⑴这主要是由fetch返回promise导致的,因为fetch返回的promise在某些错误的http状态下如400、500等不会reject,相反它会被resolve;

⑵只有网络错误会导致请求不能完成时,fetch 才会被 reject;所以一般会对fetch请求做一层封装

⑶示例:

function checkStatus(response) {if (response.status >= 200 && respons

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值