Impossible d'obtenir des données avec XMLHttpRequest (le statut 0 et le responseText sont vides):
xmlhttp = new XMLHttpRequest (); xmlhttp.open ("GET", "http://www.w3schools.com/XML/cd_catalog.xml", true); xmlhttp.onreadystatechange = fonction () { si (xmlhttp.readyState == 4) alert ("status" + xmlhttp.status); } xmlhttp.send ();
Il alerte "état 0".
La même situation avec la requête localhost (cd_catalog.xml est enregistré en tant que fichier local)
xmlhttp.open ("GET", "http: //localhost/cd_catalog.xml", true);
Mais avec la requête IP localhost
xmlhttp.open ("GET", "http://127.0.0.1/cd_catalog.xml", true);
et avec la demande de fichier local
xmlhttp.open ("GET", "cd_catalog.xml", true);
tout va bien (état 200)
Qu'est-ce qui peut causer le problème (statut = 0) avec la demande en ligne?
PS: Live HTTP Headers montre que tout est OK dans les 4 cas:
HTTP / 1.1 200 OK Content-Longueur: 4742
PS2: serveur Web local Apache sur VMWare (OS hôte Win7, OS invité Ubuntu, adaptateur réseau - NAT). Navigateur - Firefox.
XMLHttpRequest
ne peut pas faire de requêtes inter-domaines. Il existe cependant quelques solutions de contournement. Regardez jquery, par exemple.
http://127.0.0.1
par hasard? ;)