无法从服务器读取JSON响应

时间:2012-12-20 07:29:27

标签: javascript html json

我正在开发一个向网站发送一些数据的网络应用。该网站将数据更新到其数据库并返回一个替换我的webapp页面的json数组。我正在使用ajax进行查询。我需要知道如何防止覆盖我的网页。服务器不是我的,因此可能存在相同的原始策略问题 我检查了xmlhttp.readystatexmlhttp.status,它们分别是4和0。根据stackoverflow上的一些帖子,0状态由于原始策略而发生,但我无法得到解决方案,因为通常有此问题的人可以访问服务器端编程的更改。
我想读取json并为我的应用程序提取值,但如果我使用xmlhttp.responseText,则服务器返回一个空字符串。

非常感谢任何帮助 感谢

我的代码:

function sendAndReceive() {

    var xmlhttp;
    xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function () {
        document.getElementById("postevent").innerHTML = "state changed";
        document.getElementById("postevent").innerHTML = "" + xmlhttp.readyState + " " + xmlhttp.status;
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("postevent").innerHTML = "success response";
            document.getElementById("postevent").innerHTML = "this is it" + xmlhttp.responseText;
        }
    }

    var url = "http://simple.ap.ernet.in/api/home/resource.php/resource/node?";
    url += "key=" + document.getElementById("key").value + "&";
    url += "datasetId=" + document.getElementById("datasetId").value + "&";
    url += "localId=" + document.getElementById("localId").value + "&";
    url += "nodeName=" + document.getElementById("nodeName").value + "&";
    url += "nodeDesc=" + document.getElementById("nodeDesc").value + "&";
    url += "lat=" + document.getElementById("lat").value + "&";
    url += "long=" + document.getElementById("long").value;

    document.getElementById("postevent").innerHTML = url;
    xmlhttp.open("POST", url, true);
    xmlhttp.send();
}

1 个答案:

答案 0 :(得分:1)

唯一已知的解决方法是让浏览器认为只有一个来源。最简单的方法是将代理放在您自己的服务器上,转发到其他服务器。如果您自己的服务器位于Apache中,则可以使用mod_proxy(请参阅this question)。

但请注意,如果其他服务器不允许跨源请求,则可能违反其策略。如果它是一个大型服务器,它可能很好地检测它并禁止你的服务器的IP。