[AJAX] http_request.status toujour à 0 !
Bonjour.
J'ai lu tout vos tuto sur l'AJAX (très bien faites d'ailleur), je pensais avoir bien compris. Mais en copian/collant ce simple code, ca me renvois :
readyState=1 status=0 responseText=
readyState=1 status=0 responseText=
readyState=2 status=0 responseText=
readyState=3 status=0 responseText=contenu_du_fichier
readyState=4 status=0 responseText=contenu_du_fichier
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
| <script type="text/javascript" language="javascript">
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function() {
alert("readyState="+http_request.readyState + " status=" + http_request.status + " responseText=" + http_request.responseText);
if ( http.readyState == 4 && http.status == 200) {
alert("Ca a enfin marché");
}
}
http_request.open("GET", url, true);
http_request.send(null);
}
</script> |
La référence de l'url est un html ne contenant rien d'autre que "contenu_du_fichier" (aucunes balises)
Jamais donc mon "http_request.status" n'es à 200, alors que mon "http_request.responseText" est complet !!!!
Sur un autre poste j'ai lu ceci :
Citation:
Envoyé par FremyCompany
Ne teste plus le status...
Il semble qu'il y aie souvent des pbs avec celui-ci et dans 90% des cas, c'est sans raisons.
if (xhr.readyState == 4) suffit amplement (ensuite tu vérrifie que ton responseText != null et c'est ok)
Mais quand je le by pass, j'ai une erreur plus loin (des parties de fichier sont indéfinies -> quand je teste avec un XML dont j'extait le contenu)
Merci d'avance
PS: J'ai FF2 et IE7