xmlhttpRequest在xmlhttp.open()中传递URL

时间:2013-12-21 05:40:01

标签: javascript html xmlhttprequest cgi-bin

我的情况是我必须将xmlhttp.open中的URL传递给另一台服务器。我知道可以使用xmlhttp.open在同一服务器上传递URL。我希望将此URL传递给另一台服务器并将响应返回给调用服务器。我尝试了以下方式(场景2):

Scenario1: 适用于同一服务器的常规方法:

xmlhttp.open("GET","../cgi-bin/perlcode.pl?root="+str+"&lang="+lang+"&out_notation="+out_notation,true);

Scenario2: 请求发送到另一台服务器:

xmlhttp.open("GET","http://abcxyz.com/cgi-bin/perlcode.pl?root="+str+"&lang="+lang+"&out_notation="+out_notation,true);

在第一种情况下,我可以将响应返回到同一台服务器。在第二种情况下,我无法获得响应,但我可以看到请求被传递到服务器abcxyz.con并且它是处理所需的结果。

问题:我选择了正确的方法。如果是如何取回回复,或者我可以选择其他替代方案。

注意:我选择了xmlhttp.open方法,这样我就可以在同一网页上获得结果,而无需点击提交按钮。

1 个答案:

答案 0 :(得分:0)

根据同源策略,您无法使用XMLHttpRequest请求其他服务器(源)。

但是,您可以使用一些解决方法,例如:

https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

http://en.wikipedia.org/wiki/JSONP