Answers:
如果浏览器收到对ajax请求的重定向响应,该怎么办?
如果服务器发送了重定向(又名302响应加上Location:标头),则浏览器将自动跟随重定向。对第二个请求的响应(假设它也不是另一个重定向)是程序所暴露的。
实际上,您没有能力检测是否已发生302响应。如果302重定向导致200,则您的程序的行为就如同原始请求直接导致200。
2016年更新:时间已经过去,而且好消息是,新的fetch()API经过专门设计,可以对重定向的处理方式进行更细粒度的控制,其默认行为类似于XHR。也就是说,它仅在本地实现fetch()的地方起作用。基于XHR的 polyfill 版本的fetch()仍然具有XHR的局限性。幸运的是,本机浏览器支持似乎很好。
在ajax-request
将跟踪该重定向AFAIK。实际内容(.responseText
,.responseXML
)将是您重定向到的页面中的内容。
你也许能够拦截重定向(status-code
,location-header
上)readyState
2或3,但不知道这件事。
getAllResponseHeaders()
也相等。