我需要从网站向另一个域中托管的REST Web服务发出AJAX请求.
虽然这在Internet Explorer中运行良好,但其他浏览器(如Mozilla和Google Chrome)实施了更为严格的安全限制,禁止跨站点AJAX请求.
问题是我无法控制域或托管站点的Web服务器.这意味着我的REST Web服务必须在其他地方运行,我无法实现任何重定向机制.
以下是进行异步调用的JavaScript代码:
var serviceUrl = "http://myservicedomain"; var payload = ""; var request = new XMLHttpRequest(); request.open("POST", serviceUrl, true); // <-- This fails in Mozilla Firefox amongst other browsers request.setRequestHeader("Content-type", "text/xml"); request.send(payload); Some content
如何在Internet Explorer旁边的其他浏览器中使用此功能?
也许JSONP可以提供帮助.
NB你必须改变你的消息使用json而不是xml
编辑
flickr和twitter等主要网站都支持jsonp回调等
标记为答案的帖子是错误的:iframes文档无法访问父级.相同的原产地政策有两种方式.
事实是,不可能以任何方式使用xmlhttprequest来使用基于休息的web服务.从不同域(没有任何框架)加载数据的唯一方法是使用JSONP.任何其他解决方案都需要位于您自己的域上的服务器端代理,或位于远程域上的客户端代理以及某些跨站点通信(如easyXDM)来在文档之间进行通信.