繁体   English   中英

如何为XMLHTTPRequest指定外部网站

[英]How to specify an external website for XMLHTTPRequest

在javascript中使用XMLHTTPRequest时,我想将其发送到外部网站,而不是托管.js文件的网站。 要将它发送到当前服务器上的test.php,我会使用

request.open("POST", "test.php", true);

但对于第二个争论,我如何将其发送到另一个网站。 “example.com/test.php”在当前服务器上查找文件,“ http://example.com/test.php ”似乎完全失败。

出于安全考虑,你不能这样做。 查看JavaScript的相同原始策略

有一些解决方案可以利用浏览器错误或角落案例,但不建议使用它们。

最好的方法是使用服务器端代理接收Ajax请求,然后将HTTP请求发送到其他服务器。 这应该通过清理输入并将发送的请求类型和联系的服务器列入白名单来仔细实现。

这听起来像是同源政策的坏情况,我的朋友:)

如果您可以控制服务器,则可以在HTTP回复中使用此标头,但它可能不适用于所有浏览器。

Access-Control-Allow-Origin: *

您不能(大多数情况下)使用XmlHttpRequest从外部网站获取数据。 但是,您可以动态创建SCRIPT标记并引用外部地址。 jQuery在功能上包装它作为其ajax处理的一部分。

的确可以。 不是在任何浏览器中。

在Internet Explorer 8.0中有XDomainRequest ,这是一个支持跨域请求的对象。 您需要通过首先使用“*”或请求者域名发送Access-Control-Allow-Origin标头来正确处理在服务器上使用此对象进行的请求。

既然你正在做一些hacky事情,为什么不尝试首先在IE8上使用它?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM