Axios 是否有能力检测重定向?

Dan*_*ank 10 javascript response.redirect fetch axios

Fetch APIResponse 接口有一个只读标志, redirected,指示响应是否是重定向请求的结果。

是否爱可信库也有类似的功能?我能找到的最好的方法是maxRedirects设置要遵循的最大重定向数。但是,我只是想确定它是否发生(因此我可以专门处理重定向),而不是阻止它发生。

Pop*_*lus 14

您可以获得重定向计数:

const response = await axios.get('http://someurlthatredirects.com');
console.log(response.request._redirectable._redirectCount);
Run Code Online (Sandbox Code Playgroud)


sid*_*ker 11

将代码中的请求 URL 与response.request给出的 URL 进行比较。responseURL; 如果它们不相等,则您知道请求已重定向。

就状态码为 200 而言,这就是规范所要求的;无论您使用哪种 API,都不会向浏览器中运行的前端 JavaScript 公开中间状态代码。另请参阅http://stackoverflow.com/a/46031800/441757 上的答案

  • 就我而言,“response.request.res.responseUrl”有效 (6认同)
  • 我相信你想要的值将在 `response.request.responseURL` 中公开 (3认同)
  • -1:据我所知,axios 暴露的“response”没有“url”成员,这使得这完全不是问题的答案。https://github.com/axios/axios#response-schema (2认同)