繁体   English   中英

返回重定向作为对 XHR 请求的响应

[英]Returning redirect as response to XHR request

如果浏览器收到对 ajax 请求的重定向响应会发生什么?

如果浏览器收到对 ajax 请求的重定向响应,会发生什么?

如果服务器发送重定向(又名 302 响应加上 Location: 标头),则浏览器会自动跟随重定向。 第二个请求的响应(假设它也不是另一个重定向)是向您的程序公开的内容。

事实上,您没有能力检测是否发生了 302 响应。 如果 302 重定向导致 200,那么您的程序的行为与原始请求直接导致 200 相同。

这既是我的经验,也是规范中提到行为

2016 年更新:时间过去了,好消息是新的fetch() API被规范为对重定向的处理方式提供更细粒度的控制,默认行为类似于 XHR。 也就是说,它仅适用于本机实现 fetch() 的情况。 fetch() 的 Polyfill 版本——基于 XHR——仍然有 XHR 的局限性 幸运的是,本地浏览器支持似乎很好。

ajax-request将遵循该重定向 afaik。 实际内容( .responseText.responseXML )将是您重定向到的页面中的内容。

您可能能够在readyState 2 或 3 上拦截重定向( status-codelocation-header ),但不确定。

TLDR:它是可行的fetch
更多信息: https : //github.com/axios/axios/issues/932#issuecomment-515229573

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM