我需要从一个网站向另一个域中托管的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以外的其他浏览器中进行此项工作?
也许JSONP可以提供帮助。
注意您必须将您的消息更改为使用json而不是xml
编辑
诸如flickr和Twitter之类的主要站点都支持带有回调等的jsonp