Json 无法在本地服务器上获取xmlhttp响应

Json 无法在本地服务器上获取xmlhttp响应,json,jquery,Json,Jquery,我正试图从本地机器上运行的服务器获取xmlhttp请求 function makeRequest(url) { var url = "http://localhost:8081/data/json"; request = new XMLHttpRequest(); request.onreadystatechange = alertContents; request.open("GET",url,true); request.send();

我正试图从本地机器上运行的服务器获取xmlhttp请求

  function makeRequest(url) {

    var url = "http://localhost:8081/data/json";

    request = new XMLHttpRequest();
    request.onreadystatechange = alertContents;
    request.open("GET",url,true);
    request.send();

    function alertContents() {
        if ( request.readyState === 4 )  {
            var jsonResponse = JSON.parse(request.responseText);
            alert(jsonResponse.computedString);
            alert(request.status);
        }
    }

}
但它总是返回status=0


我不明白为什么会这样

从上面的讨论来看,这个问题似乎是一个同源政策问题。即使在访问同一台服务器时,如果

  • 协议(http与https)
  • 主机(本地主机vs 127.0.0.1)
  • 端口(80对8081)不匹配

控制台输出和Chrome的网络选项卡(CTRL+SHIFT+J)也有助于诊断此类问题

生成
data.json
的代码是什么。
data.json
中应该包含的内容只是一个文件,其中包含json表示形式的数据。类似这样的情况:您是否尝试过在
alertContents()
中使用
this
而不是
request
?我还建议将其实际写入jQuery ajax请求。例如:
$.get(url,alertContents,'json')。您需要稍微重写一下
alertContents
函数:
var-alertContents=function(data){alert(data);}
您最初使用什么主机和端口访问页面?如果它们不一样,您可能会遇到策略问题