GET AJAX - 快速更新时Json尺寸问题

时间:2017-06-23 12:30:43

标签: javascript json ajax

我使用AJAX来获得"软实时"来自JSON文件的值。

实际上在我的服务器上,C程序正在用一些信息(200ms周期)更新Json文件。 在我的网页上,我得到这个Json文件,用250ms计时器显示这些信息。我使用Ajax来获取Json文件。

问题是当Json文件大小发生变化时,例如:

我的Json文件是:

{ "data1": { "val1": "12", "val2": "125"}, "data2": { "val1": "253", "val2": "0"} }

成为:

{ "data1": { "val1": "12", "val2": "14"}, "data2": { "val1": "253", "val2": "0"} }

发生错误,Ajax请求的响应是:

{ "data1": { "val1": "12", "val2": "14"}, "data2": { "val1": "253", "val2": "0"} }\u0

" \ U0"似乎取代了缺失的角色。

当文件变长时,会出现同样的情况,响应为:

{ "data1": { "val1": "12", "val2": "14"}, "data2": { "val1": "253", "val2": "0"}

缺少最后一个花括号。

我的Ajax Javascript代码是:

function getXMLHttpRequest() {
    var xhr = null;

    if (window.XMLHttpRequest || window.ActiveXObject) {
        if (window.ActiveXObject) {
            try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
        } else {
            xhr = new XMLHttpRequest(); 
        }
    } else {
        alert("Your browser doesn't support the XMLHTTPRequest object ...");
        return null;
    }
    return xhr;
}

function getDataAjax(callback, phpFile) {

    xhr = getXMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            callback(xhr.responseText);
        }
    };

    xhr.open("GET", phpFile, true);
    xhr.send(null);
}

Json文件是正确的,但Ajax答案不是。

感谢您的帮助。

0 个答案:

没有答案