6

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

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

谢谢。

4

2 回答 2

10

可以期望它普遍适用,因为它不是 jQuery 进行处理。这是所有库用于 AJAX 调用 的底层XmlHtpRequest浏览器对象的指定行为。

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

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

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

于 2010-11-14T11:37:16.783 回答
0

如果您查看 firebug,您实际上可以看到重定向正在发生。我认为你是对的,你不能对每个浏览器都依赖它。但我倾向于最新的浏览器会为您处理 http 连接并进行重定向。

于 2010-11-12T20:31:17.157 回答