1

以下代码是否足以用于 XHRing 远程服务器?与普通 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>
4

2 回答 2

1

通常,Javascript 只能将 xhrs 发送到加载 javascript 的服务器。它被称为同源策略。我怀疑这就是阻止你的原因。

于 2012-04-21T02:02:20.033 回答
1

您的代码在大多数情况下似乎是正确的。您正在处理跨浏览器兼容性等。但是,同源策略将不允许您从远程服务器上的脚本接收响应。

如果远程服务器支持JSON-P响应格式,则可以解决此问题。

另一种解决方法是服务器是否支持Cross Origin Resource Sharing。但是,从个人经验来看,这是参差不齐的。如果服务器支持,我会使用 JSON-P。

(旁注:如果你使用像 Jquery 这样的库/框架,你可以让你的生活变得更加简单。上面的代码片段可以压缩为 3-4 行代码,并且框架将负责跨浏览器的兼容性。)

于 2012-04-21T02:04:04.693 回答