fetch捕获重定向302/301

本文介绍了在前端使用fetch时遇到302/301重定向无法直接捕获状态码的问题,以及两种解决方案:通过fetch的redirect选项设置为manual来判断重定向,或者后端改写状态码让前端手动处理。这两种方法分别有其适用场景和限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 读完本文大约需要5分钟
  2. 本文前置知识:HTTP状态码、fetch
  3. 阅读难度:初级
  4. 本文关键代码及输出结果都写了出来,可以不用编译器编译,直接浏览文章



事情发生在昨天,在调用接口的时候,接口写错了:

/xxx/interventionlist 写成了 /xxx/Interventionlist

果不其然红一片,点开network后,找到调用的接口 ⬇️

这里的302是对404处理后的结果,将所有出现404的结果跳转到一个指定的404页面。 不过这种跳转应该发生在访问页面时,而不是在调用接口传参交互时。

因此我决定对这种出现302的错误进行一个封装,在亲自踩过坑后,这篇文章诞生了!


重定向时无法直接捕获状态码

最开始我尝试直接做个 checkStatus() 来处理这种问题,当response.status === 302console.log出来

...

function checkStatus(response) {
    console.log(response)   // 注1<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值