2014-10-17 3 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, и все они работают очень хорошо, кроме одного, и я не могу объяснить, почему.

Btw, мой путь к файлу php: http://localhost/TP2/PHP/script_load_arrondissements_get.php.

Кроме того, вы должны знать, что этот файл возвращает правильное содержимое xml.

Это то, что консоль говорит о моей просьбе: enter image description here

Любой знает, что может быть проблема? Благодарю.

+0

Вы проверили запрос в консоли? –

+0

Да, но я не совсем уверен, что понимаю. Я редактировал свой пост. – TheWanderingMind

ответ

1
xhrArrond.onreadystatechange = chargerArrondCallback(xhrArrond); 

Вы вызываете вашу функцию обработчика событий и назначая его возвращаемое значение (undefined) в качестве обработчика события.

Изменить это:

xhrArrond.onreadystatechange = chargerArrondCallback; 

... и затем получить доступ к объекту XHR это связано с использованием this внутри функции.

+0

Может быть, я не знаю, как именно использовать «это», но я попытался: console.log (this.xhrArrond); внутри функции chargerArrondCallback, и он возвращает неопределенный. – TheWanderingMind

+0

@ProgProsecutor - вы используете 'this' * вместо' 'xhrArround', а не так. – Quentin

+0

Ох .. Я понимаю .. спасибо. – TheWanderingMind

Смежные вопросы