Nie można pobrać danych za pomocą XMLHttpRequest (status 0 i tekst odpowiedzi jest pusty):
xmlhttp = new XMLHttpRequest (); xmlhttp.open ("POBIERZ", "http://www.w3schools.com/XML/cd_catalog.xml", prawda); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) alert ("stan" + xmlhttp.status); } xmlhttp.send ();
Informuje o „statusie 0”.
Taka sama sytuacja z żądaniem localhost (cd_catalog.xml jest zapisywany jako plik lokalny)
xmlhttp.open ("POBIERZ", "http: //localhost/cd_catalog.xml", true);
Ale z żądaniem adresu IP hosta lokalnego
xmlhttp.open ("POBIERZ", "http://127.0.0.1/cd_catalog.xml", prawda);
i z żądaniem pliku lokalnego
xmlhttp.open ("POBIERZ", "cd_catalog.xml", prawda);
wszystko w porządku (stan 200)
Co może powodować problem (stan = 0) z żądaniem online?
PS: Live HTTP Headers pokazuje, że wszystko jest w porządku we wszystkich 4 przypadkach:
HTTP / 1.1 200 OK Content-Length: 4742
PS2: lokalny serwer WWW Apache na VMWare (system operacyjny hosta Win7, system operacyjny gościa Ubuntu, karta sieciowa - NAT). Przeglądarka - Firefox.
XMLHttpRequest
nie może wykonywać żądań między domenami. Istnieją jednak pewne obejścia. Spójrz na przykład na jquery.
http://127.0.0.1
jest przypadkiem? ;)