代码之家  ›  专栏  ›  技术社区  ›  Rob Wilkerson

Ajax重定向处理

  •  6
  • Rob Wilkerson  · 技术社区  · 15 年前

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

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

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  10
  •   Nick Craver    15 年前

    可以 希望它能普遍地工作,因为它不是jQuery处理的。这是底层的指定行为 XmlHtpRequest 浏览器对象 全部的 用于AJAX调用的库。

    You can find the behavior specified here by the W3C :

    如果 origin URL 由位置标题传送的是 same origin XMLHttpRequest origin 重定向并不违反无限循环预防措施, 透明跟随 在观察 same-origin request event rules .

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

        2
  •  0
  •   Amir Raminfar Hadi Rasouli    15 年前

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