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 :
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.
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 !"); } }
Partager