如何修复TypeError:undefined不是对象错误?

时间:2016-08-04 11:07:23

标签: javascript xmlhttprequest

我尝试将使用XMLHttpRequest获取的文件的结果添加到数组中。该文件是json。

这是创建错误的代码:

var array = [];
var req = new XMLHttpRequest();
req("get", "test.json");
req.onreadystatechange = handle(req, array);
req.send();

function handle(req, array) {
    if ((req.target.readyState == 4) && (req.target.status == 200)) {
        var json = JSON.parse(req.target.responseText);
        array.push(json.test);
        alert(array);

    }
}

不使用target,其值为4

1 个答案:

答案 0 :(得分:0)

您使用了错误的请求属性。

尝试使用onready函数进行onreadystatechange回调

var array = [];
var req = new XMLHttpRequest();
req("get", "test.json");
req.onreadystatechange = function(){
     if ((req.readyState == 4) && (req.status == 200)) {
        var json = JSON.parse(req.responseText);
        array.push(json.test);
        alert(array);
    }
};
req.send();

或按照你的方式

var array = [];
    var req = new XMLHttpRequest();
    req("get", "test.json");
    req.onreadystatechange = handle();
    req.send();
function handle(){
         if ((req.readyState == 4) && (req.status == 200)) {
            var json = JSON.parse(req.responseText);
            array.push(json.test);
            alert(array);
        }
    };