如果浏览器收到对ajax请求的重定向响应,该怎么办?
如果服务器发送了重定向(又名302响应加上Location:标头),则浏览器将自动跟随重定向。对 第二个 请求的响应(假设它也不是另一个重定向)是程序所暴露的。
实际上,您没有能力检测是否已发生302响应。如果302重定向导致200,则您的程序的行为就如同原始请求直接导致200。
这既是我的经验,也是规范中提到的行为。
2016年更新: 时间已经过去,而且好消息是,新的fetch()API经过专门设计,可以对重定向的处理方式进行更细粒度的控制,其默认行为类似于XHR。也就是说,它仅在 本地 实现fetch()的地方有效。基于XHR的 polyfill 版本的fetch()仍然具有XHR的局限性。幸运的是,本机浏览器支持似乎很好。