我有AJAX代码,如果您请求对远程服务器进行AJAX调用,请求将失败:
function loadXMLDoc() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "http://www.google.com", true);
xmlhttp.send();
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能解决这个问题?
Dan*_*llo 16
看起来你已经碰到了同样的原产地政策.您必须使用相对路径而不是绝对http://www.google.com路径.
作为一种可能的解决方法,您可以设置一个非常简单的反向代理(如果您使用的是Apache,则使用mod_proxy).这将允许您在AJAX请求中使用相对路径,而HTTP服务器将充当任何"远程"位置的代理.
在mod_proxy中设置反向代理的基本配置指令是ProxyPass.您通常会按如下方式使用它:
ProxyPass /web-services/ http://third-party.com/web-services/
Run Code Online (Sandbox Code Playgroud)
在这种情况下,浏览器将请求,/web-services/service.xml但服务器将通过充当代理来服务于此http://third-party.com/web-services/service.xml.
另一个常见的解决方法是使用JSONP.
| 归档时间: |
|
| 查看次数: |
26240 次 |
| 最近记录: |