有没有办法将XMLHttpRequest与其他域结合使用?
我想从Google解析一些xml,而不必使用服务器,因此运行起来很简单。
var req = getXmlHttpRequestObject();
...
req.open('GET', 'http://www.google.de/ig/api?weather=Braunschweig', true);
req.setRequestHeader("Content-Type","text/xml");
req.onreadystatechange = setMessage;
req.send(null);
在服务器端这样做是不可能的,至少我不需要问
答案 0 :(得分:11)
答案 1 :(得分:7)
HTML5现在支持使用XmlHttpRequest级别2的Cross Origin请求来查看:
答案 2 :(得分:2)
这是一个安全问题,大多数(所有?)浏览器都不会让你这样做。您可以使用隐藏的IFrame进行提取,但它足够复杂,我只使用服务器(或切换到其他语言,如果我不必在浏览器中运行)
答案 3 :(得分:1)
您无法进行跨域请求,例如。由于客户端(浏览器)的安全问题,从example1.com到example2.com通过XMLHttpRequest或jQuery(它是XMLHttpRequest的包装器)。这可以在支持HTML5到CORS的现代浏览器中有效实现(跨源资源共享,这在每个客户端浏览器中都不可用。因此,解决方案是在example2.com的example1.com中插入脚本标记,这个解决方案是已知的作为JSON-P(带填充的JSON),名称可能会产生误导,因为数据可以是服务器(example2.com)提供的任何格式。其实现代码在此链接http://newtechinfo.net/jsonp-for-cross-domain-ajax/
中给出答案 4 :(得分:0)
由于目前浏览器限制XSS攻击的SOP(同源策略),这是不可能的。
您将不得不使用服务器端脚本(PHP或其他)。
答案 5 :(得分:0)
可以使用HTML5将XHR创建到另一个域。当与HTTP通信到另一个网站时,您也可以使用XHR进行不同的协议请求。
答案 6 :(得分:-1)
您可以尝试在服务器端执行某些操作。因此,在您的应用程序中,您向远程站点发出请求以获取结果并将其返回给您的客户端。然后,AJAX调用只调用您自己的服务器并运行。