我无法使用XMLHttpRequest获取任何数据,因为它的readyState返回0。我有以下代码:

function chargerArrondissements() {
    var xhrArrond = new XMLHttpRequest();
    xhrArrond.onreadystatechange = chargerArrondCallback(xhrArrond);
    var lienDocArrond = 'PHP/script_load_arrondissements_get.php';
    xhrArrond.open('GET', lienDocArrond, true);
    console.log('Arrondissements chargés dans le fichier xml');
    xhrArrond.send(null);
}

function chargerArrondCallback(xhrArrond) {
    alert(xhrArrond.readyState);
}


警报窗口显示为0。我还尝试在设置处理程序之前打开XHR,但它仍返回0。现在,奇怪的是,我在该页面上有很多XHR,它们都工作得很好,除了一个,以及我无法解释原因。

顺便说一句,我的php文件路径是:http://localhost/TP2/PHP/script_load_arrondissements_get.php

另外,您应该知道此文件返回正确的xml内容。

这是控制台关于我的请求的内容:


有人知道可能是什么问题吗?谢谢。

最佳答案

xhrArrond.onreadystatechange = chargerArrondCallback(xhrArrond);


您正在调用事件处理程序函数,并将其返回值(undefined)分配为事件处理程序。

更改为:

xhrArrond.onreadystatechange = chargerArrondCallback;


…,然后使用函数内的this访问与之关联的XHR对象。

07-24 22:04