【问题标题】:How to XHR a remote server?如何 XHR 远程服务器?
【发布时间】:2012-04-21 01:58:37
【问题描述】:

以下代码是否足以用于 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>

【问题讨论】:

标签: javascript ajax xmlhttprequest


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    (旁注:如果你使用像 Jquery 这样的库/框架,你可以让你的生活变得更简单。上面的代码 sn-p 可以压缩为 3-4 行代码,框架会处理交叉- 浏览器兼容性。)

    【讨论】:

      猜你喜欢
      • 2018-05-03
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-18
      相关资源
      最近更新 更多