如何为XMLHTTPRequest指定外部网站
-
03-07-2019 - |
题
在javascript中使用XMLHTTPRequest时,我想将其发送到外部网站,而不是托管.js文件的网站。要将它发送到当前服务器上的test.php,我会使用
request.open("POST", "test.php", true);
但是对于第二个争论,如何将其发送到另一个网站。 " example.com/test.php"在当前服务器上查找文件,并“ http://example.com/test.php"只是看起来彻底失败。
解决方案
出于安全考虑,你不能这样做。请参阅JavaScript的相同的原始政策。
有一些解决方法可以利用浏览器错误或角落案例,但不建议使用它们。
最好的方法是使用服务器端代理接收Ajax请求,然后将HTTP请求发送到其他服务器。这应该通过清理输入并将发送的请求类型和所联系的服务器列入白名单来仔细实现。
其他提示
这听起来像同源政策的一个不好的情况,我的朋友:))
您不能(大多数情况下)使用XmlHttpRequest从外部网站获取数据。但是,您可以动态创建SCRIPT标记并引用外部地址。 jQuery 在功能上将其作为其ajax处理的一部分。
确实可以。尽管不在任何浏览器中。
在Internet Explorer 8.0中有 XDomainRequest ,一个启用跨域请求的对象。您需要通过首先使用“*”发送Access-Control-Allow-Origin标头来正确处理在服务器上使用此对象进行的请求。或请求者域名。
既然你正在做一些hacky事情,为什么不先试着在IE8上使用呢?
如果您可以控制服务器,则可以在HTTP回复中使用此标头,但它可能不适用于所有浏览器。
Access-Control-Allow-Origin: *
不隶属于 StackOverflow