以下代码是否足以用于XHR远程服务器?从普通的XHR代码中唯一改变的是我将完整的服务器URL放入XHR对象的open方法的URL参数中。我不确定这是否足够?它不起作用;所以我不确定缺少什么。
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
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://insertURLofRemoteServerHere.com?parameter1=true",true);
xmlhttp.send();
}
</script>
答案 0 :(得分:1)
通常,Javascript只能将xhrs发送到加载javascript的服务器。它被称为Same Origin Policy。我怀疑这是阻止你的原因。
答案 1 :(得分:1)
您的代码似乎在大多数情况下都是正确的。您正在处理跨浏览器兼容性等。但是,Same Origin Policy将不允许您从远程服务器上的脚本接收响应。
如果远程服务器支持JSON-P响应格式,则解决方法是。
另一种解决方法是服务器是否支持Cross Origin Resource Sharing。但是,从个人经验来看,这是不稳定的。如果服务器支持,我会使用JSON-P。
(旁注:如果使用像Jquery这样的库/框架,你可以让你的生活更加简单。上面的代码片段可以压缩成3-4行代码,框架将照顾跨浏览器兼容性。)