1

我尝试实现以下场景:

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

我希望这个跨域重定向被处理,但是 XHR-send 方法返回一个错误并且没有请求或预检请求被触发。

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

根据XHR 规范,我预计重定向也可以跨域工作。

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

4

1 回答 1

2

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

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

于 2013-04-17T23:42:34.657 回答