Json 无法在本地服务器上获取xmlhttp响应
我正试图从本地机器上运行的服务器获取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();
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);}
您最初使用什么主机和端口访问页面?如果它们不一样,您可能会遇到策略问题