Mam problem z przeglądarką Chrome. Pobieram informacje na moją stronę za pomocą AJAX. Serwer wysyła mi plik XML, z którego potem wyświetlam potrzebne dane. W Firefoxie działa to bardzo dobrze, jednak w Chrome jest dziwny błąd: xhr.responseXML zwraca wartość null. Ktoś wie jak to obejść?
Nie wiem jak jest w Internet Explorerze, bo nie mam możliwości zainstalowania IE10.
Poniżej podaję mój kod:
var xhr=new XMLHttpRequest();
xhr.open("GET", "./ajax.php", true);
xhr.addEventListener("readystatechange", wyswietl, false);
xhr.send(null);
function wyswietl() {
if (xhr.readyState==4) {
xhr.removeEventListener("readystatechange", wyswietl, false);
if(xhr.status==200) {
console.log("Text:", xhr.responseText);
console.log("Text:", xhr.responseXML);
} else {
console.error("Błąd: nie można pobrać");
}
}
}
Hmm, powiem szczerze, że nie wiem co się stało, ale faktycznie xml już nie ma wartości null. Ale problem dalej jest, tylko w innym miejscu. Dalej próbuję zrobić coś takiego:
var nauczyciele=xml.getElementsByTagName("nauczyciele")[0].getElementsByTagName("nauczyciel");
for (var i=0; i
var id=nauczyciele[i].getElementsByTagName("id")[0].innerHTML;
var imie=nauczyciele[i].getElementsByTagName("imie")[0].innerHTML;
var nazwisko=nauczyciele[i].getElementsByTagName("nazwisko")[0].innerHTML;
}
Zmienna nauczyciele ma wartość undefined, a co za tym idzie id, imie i nazwisko również są _undefined_Plik XML wygenerowany przez ajax.php wygląda tak:
<?xml version="1.0" encoding="utf-8"?>
12
Jan
Kowalski
11
Barbara
Nowak
23
Andrzej
Kiepski
Pętla wykonuje się 3 razy, czyli nauczyciele.length musi zwracać 3.
Znów problemu nie ma w Firefox’ie, tam wszystko działa bez problemu.