2014-10-17 232 views
0

我不能使用XMLHttpRequest的任何数据,因为它的readyState返回0。我有这样的代码: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内容。

这是控制台说什么关于我的要求: enter image description here

任何人都知道可能是什么问题呢?谢谢。

+0

您是否检查过控制台中的请求? – 2014-10-17 17:57:01

+0

是的,但我并不确定自己明白。我编辑了我的帖子。 – TheWanderingMind 2014-10-17 18:10:04

回答

1
xhrArrond.onreadystatechange = chargerArrondCallback(xhrArrond); 

您正在调用您的事件处理函数并将其返回值(undefined)指定为事件处理函数。

将其更改为:

xhrArrond.onreadystatechange = chargerArrondCallback; 

...然后访问XHR对象是使用this里面的功能有关。

+0

也许我不知道如何使用'this',但是我试过了: console.log(this.xhrArrond);在chargerArrondCallback函数内部,它返回undefined。 – TheWanderingMind 2014-10-17 18:27:33

+0

@ProgProsecutor - 你使用'this' *而不是''xhrArround',而不是它。 – Quentin 2014-10-17 18:33:12

+0

哦..我明白了..谢谢。 – TheWanderingMind 2014-10-17 18:44:10