Javascript : affiche les entêtes HTTP
Bonjour,
Je cherche à utiliser un script que j'ai trouvé dans Ajax à 200% paru chez o'reilly. Or ce script ne fonctionne pas, et je ne parviens pas à en trouver l'erreur.
J'ai une page html qui fait appel à la fonction traiteReponse, en afficant msgAffichage dans un tableau.
Voilà mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| var request;
var urlFragment="http://localhost:80/";
function getAllHeaders(url){
httpRequest("GET",url,true);
}
//fonction de gestion de l'événement onreadystatechange de XMLHttpRequest
function traiteReponse( ) {
try{
if(request.readyState == 4){
if(request.status == 200){
/* toutes les entêtes sont reçues sous la forme
d'une chaine de caractéres */
var headers = request.getAllResponseHeaders();
var div = document.getElementById("msgAffichage");
div.className="header";
div.innerHTML="<pre>"+headers+"</pre>";
} else {
// request.status est 503 si l'appli est indisponible
// 500 si appli rencontre un bug
alert(request.status);
alert("un probléme de communication est survenu entre " + "l'objet XMLHttpRequest et le programme côté serveur.");
}
}//fin de la boucle si
} catch (err) {
alert("Le serveur ne paraît pas" +
"dipsonible pour l'application. Veuillez"+
" réessayer dans un instant. \nErreur : "+err.message);
}
}
/* initialise un objet de requête qui a été préalablement construit */
function initReq(reqType,url,bool){
try{
/* Spécifie la fonction qui va traiter le réponse HTTP */
request.onreadystatechange=traiteReponse;
request.open(reqType,url,bool);
request.send(null);
} catch (errv) {
alert(
"L'application ne parvient pas à contacter le serveur actuellement. " +
"Veuillez réessayer dans quelques secondes.");
}
}
/* Fonction d'encapsulation l'objet de requête.
Paramétres :
reqType : Le type de requête HTTP, comme GET ou POST.
url : L'URL de programme côté serveur.
asynch : Précise si l'envoi de la requête est asynchrone ou non. */
function httpRequest(reqType,url,asynch){
//Pour les navigateurs basés sur Mozilla
if(window.XMLHttpRequest){
request = new XMLHttpRequest();
} else if (window.ActiveXObject){
request=new ActiveXObject("Msxml2.XMLHTTP");
if (! request ){
request=new ActiveXObject("Microsoft.XMLHTTP");
}
}
//la requête peut toujours être nulle s'il ne s'agit pas d'ActiveXObject
//l'initialisation a abouti
if(request){
initReq(reqType,url,asynch);
} else {
alert("Votre navigateur ne permet pas l'utilisation "+
"de toutes les focntionnalités de cette application !");
}
} |
Si j'utilise mon script, je tombe sur le message d'alerte "L'application ne parvient pas à contacter le serveur actuellement. Veuillez réessayer dans quelques secondes." (l.40-41). Or, j'ai bien lancé easyphp qui utilise le port 80 de localhost... et je ne comprends pas pourquoi mon script ne fonctionne pas.