如果浏览器收到对ajax请求的重定向响应,会发生什么?
答案 0 :(得分:196)
如果浏览器收到对ajax请求的重定向响应会怎样?
如果服务器发送重定向(也称为302响应加上Location:标头),则浏览器会自动遵循重定向。对第二个请求的响应(假设它也不是另一个重定向)是您的程序所接受的。
实际上,您无法检测302响应是否已发生。如果302重定向导致200,那么您的程序就像原始请求直接导致200一样。
这既是我的体验,也是behavior called out in the spec。
2016年更新:时间已过,好消息是新fetch() API规定提供finer-grained control of how redirects are handled,其默认行为与XHR类似。也就是说,它仅适用于本地实现fetch()的地方。 Polyfill versions of fetch() - 基于XHR - continue to have XHR's limitations。幸运的是,native browser support似乎很顺利。
答案 1 :(得分:7)
ajax-request
将遵循该重定向afaik。实际内容(.responseText
,.responseXML
)将是您重定向到的网页中的内容。
您可以拦截status-code
2或3上的重定向(location-header
,readyState
),但不确定。
答案 2 :(得分:0)
TLDR:它可以与fetch
一起使用。
此处更多信息:https://github.com/axios/axios/issues/932#issuecomment-515229573