一尘不染

跨站点AJAX请求

javascript

我需要从一个网站向另一个域中托管的REST Web服务发出AJAX请求。

尽管这在Internet Explorer中很好用,但其他浏览器(例如Mozilla和Google
Chrome)强加了更加严格的安全性限制,这些限制禁止跨站点AJAX请求。

问题是我无法控制站点所在的域或Web服务器。这意味着我的REST Web服务必须在其他地方运行,并且我无法采用任何重定向机制。

这是进行异步调用的JavaScript代码:

var serviceUrl = "http://myservicedomain";
var payload = "<myRequest><content>Some content</content></myRequest>";
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);

我如何在Internet Explorer以外的其他浏览器中进行此项工作?


阅读 491

收藏
2020-05-01

共1个答案

一尘不染

也许JSONP可以提供帮助。

注意您必须将您的消息更改为使用json而不是xml

编辑

诸如flickr和Twitter之类的主要站点都支持带有回调等的jsonp

2020-05-01