Ajax重定向处理

我碰到了以前从未遇到过的情况。 我有一个客户需要向URL发出ajax请求。 出于内部原因,该URL重定向到需要访问其状态代码的另一个URL。 这种多请求场景是由Ajax请求本地处理的吗?

使用jQuery的快速测试似乎处理302,执行重定向并返回目标页面的内容(我只需要生产中的状态代码,但内容是“certificate”正在访问正确的页面),但我找不到任何迹象表明我可以期待这种做法普遍存在。 我不知道客户端将使用什么(如果有的话)库。 此外,其他客户端将来可能会使用相同的URL,并且需要以相同的方式处理它。

谢谢。

可以期待这个普遍适用,因为它不是jQuery做的处理。 这是所有库用于AJAX调用的基础XmlHtpRequest浏览器对象的指定行为。

您可以在W3C中找到此处指定的行为 :

如果Location头传送的URL的 来源与XMLHttpRequest源 相同 ,并且重定向不违反无限循环预防措施,则在观察同源请求事件规则时透明地遵循重定向。

我在这里强调了最相关的一点,只要它不违反同源策略规则(它不应该在你的同一域上),XmlHttpRequest将获得它被重定向到的最终页面的内容。 换句话说,这是你现在用jQuery看到的行为……它不是jQuery这样做的。

如果你看一下firebug,你实际上可以看到重定向发生了。 我认为你是对的,你不能依赖于每个浏览器。 但我倾向于最近的浏览器将为您处理http连接并进行重定向。