Javascript 如何在不使用XDomainRequest或XMLHttpRequest的情况下使用自定义头进行跨域请求?
我有一个来自Javascript 如何在不使用XDomainRequest或XMLHttpRequest的情况下使用自定义头进行跨域请求?,javascript,internet-explorer,xmlhttprequest,cross-domain,xdomainrequest,Javascript,Internet Explorer,Xmlhttprequest,Cross Domain,Xdomainrequest,我有一个来自www.example.com的单页web应用程序。这是一个web应用程序 需要对另一个名为api.example.com 向api.example.com 它必须与最新和不太新的浏览器兼容(例如IE>=8) 所有这些都是通过在api.example.com上使用Chrome(以及其他最新的基于WebKit的浏览器)使用XMLHttpRequest处理CORS请求来实现的。不为XMLHttpRequest实现CORS,而是为跨域请求提供非标准的XDomainRequest对象。但
www.example.com
的单页web应用程序。这是一个web应用程序
- 需要对另一个名为
api.example.com
- 向
api.example.com
- 它必须与最新和不太新的浏览器兼容(例如IE>=8)
XMLHttpRequest
处理CORS请求来实现的。不为XMLHttpRequest
实现CORS,而是为跨域请求提供非标准的XDomainRequest
对象。但是XDomainRequest
没有实现一种访问字段的方法
因此,我的问题是:如何在不使用XDomainRequest
或XMLHttpRequest
的情况下使用自定义头进行跨域请求?最佳实践解决方案是什么
编辑:我可以控制所有涉及的服务器(*.example.com)。恐怕除了在应用程序的服务器端实现此请求的代理之外,别无选择 这是正确的。您可以始终使用iframe和
postMessage
。因此,我认为至少还有一种方法:)我不知道存在postMessage这样有用的方法,所以感谢@idbehold。您需要控制api.example.com,因为您必须将iframe内容放在该域中。此外,您似乎只能在IE中发送带有postMessage的字符串。要在IE中发送字符串,您只需在发送时JSON.encode()
,然后在接收时JSON.decode()
。