Javascript 我可以对另一个域进行XMLHttpRequest吗?

Javascript 我可以对另一个域进行XMLHttpRequest吗?,javascript,xml,ajax,xmlhttprequest,Javascript,Xml,Ajax,Xmlhttprequest,有没有办法将XMLHttpRequest与其他域结合使用 我想在不使用服务器的情况下解析一些来自Google的xml,因此运行起来非常简单 var req = getXmlHttpRequestObject(); ... req.open('GET', 'http://www.google.de/ig/api?weather=Braunschweig', true); req.setRequestHeader("Content-Type","text/xml");

有没有办法将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);

在服务器端这样做是没有选择的,至少我现在不需要问。我相信我读到标准组织正在为未来制定计划/设计,因此我们可以安全地做到这一点

另一方面,跨站点脚本漏洞将非常猖獗


如果其他站点API支持,这是一个可能的解决方案

这是一个安全问题,大多数(所有?)浏览器都不允许您这样做。您可以使用隐藏的IFrame进行抓取,但它足够复杂,我只需要使用服务器(或者切换到其他语言,如果我不必在浏览器中运行)

这是不可能的,因为浏览器现在有SOP(同源策略)来限制XSS攻击。

您必须使用服务器端脚本(PHP或其他东西)。

您可以尝试在服务器端执行一些操作。因此,在您的应用程序上,您向远程站点发出请求,获取结果并将其返回给您的客户端。AJAX调用只调用您自己的服务器并工作。

HTML5现在支持XmlHttpRequest级别2的跨源请求。请看一下:


可以使用HTML5对另一个域进行XHR。在与另一个网站进行HTTP通信时,您也可以使用XHR进行不同的协议请求。

您不能进行跨域请求,例如通过XMLHttpRequest或jQuery(XMLHttpRequest的包装)从example1.com到example2.com由于客户端(浏览器)存在安全问题。这可以通过CORS(跨源资源共享)在支持HTML5的现代浏览器中有效实现,这在每个客户端浏览器中都不可用。因此,解决方案是在example2.com的example1.com中插入脚本标记,该解决方案称为JSON-P(带填充的JSON),名称可能会产生误导,因为数据可以是服务器提供的任何格式(example2.com)。其实现代码在此链接中给出

,即使有隐藏的Iframe,您仍然无法查看来自另一个域的内容。