XHR的跨源重定向

时间:2013-04-17 22:13:59

标签: google-chrome firefox redirect xmlhttprequest cross-domain

我尝试实现以下方案:

  • 从原始A.com
  • 加载页面
  • 从该页面上的脚本启动同步XHR请求到同一来源A.com上的资源
  • 然后通过302重定向到另一个来源B.com上的资源来回答此请求

我希望这个跨源重定向得到处理,但是XHR-send方法会返回一个错误,并且不会触发请求和预检请求。

  • Chrome(26):错误消息'NETWORK_ERR:XMLHttpRequest异常101'
  • Firefox(20):错误消息[例外...“失败”nsresult:“0x80004005(NS_ERROR_FAILURE)”...
  • IE9:没有错误消息,但XHR send()返回状态= 12017

根据XHR specification,我原本预计重定向也会起到跨越作用。

知道如何让这个跨源重定向运行吗?

1 个答案:

答案 0 :(得分:2)

这不起作用,因为重定向由浏览器处理,而XHR只能看到浏览器重定向到的页面 - 这意味着 跨域 - 这意味着它将失败,除非B.com明确允许您的A.com域名访问它。

您还可以将A.com上的其他页面充当代理,然后在B.com上下载内容,然后输出它返回的响应。