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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.