[AJAX] Statut de requête HTTP à 0
Bonjour,
Je suis en train de travailler sur un site personnel et jusqu'à maintenant je n'avais pas utiliser AJAX. Afin de dynamiser un peu mon travail j'ai décidé d'effectuer mes chargements de pages (dans une DIV) avec AJAX.
J'utilise AJAX depuis quelques temps déjà et je rencontre actuellement une erreur inconnue et insolvable...
J'ai cherché une solution sur le forum et sur google mais en vain.
Donc voilà mon code :
HTML :
Code:
1 2 3 4 5 6
|
...
<a href="#" onclick="javascript:chargerPage(1);">Présentation</a>
... |
Donc le lien qui appelle ma fonction JS :
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
|
function chargerPage(unId)
{
var uneXhr = getXhr();
uneXhr.open("POST", "chargerLaPage.php", true);
uneXhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
uneXhr.send("IdPage="+unId);
uneXhr.onreadystatechange = function()
{
alert("Statut du serveur : "+uneXhr.status+" ; Etat : "+uneXhr.readyState);
if(uneXhr.readyState == 4 && uneXhr.status == 200)
{
alert(uneXhr.responseText);
document.getElementById('frame').innerHTML = uneXhr.responseText;
}
}
}
function getXhr()
{
var xhr = null;
// Si le navigateur est firefox ou autres
if(window.XMLHttpRequest)
{
// On crée l'xhr du bon type
xhr = new XMLHttpRequest();
}
// Sinon s'il s'agit d'IE
else if(window.ActiveXObject)
{
// IE7
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
// Version d'IE < 7
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
// XMLHttpRequest non supporté par le navigateur
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
} |
Avec un Code Php :
Code:
1 2 3 4 5 6 7
|
<?php
echo "blabla";
?> |
Mon 'alert(uneXhr.responseText);' ne s'affichait pas, j'ai donc vérifier le statut et l'état de la XHR :
Cela m'affiche 0 pour le statut et 4 pour l'état.
En mettant un test tel que 'if(uneXhr.readyState == 4 && uneXhr.status == 0)' l'affichage de la réponse de mon php est vide...
J'ai testé ce code sous Firefox en localhost et sur un serveur d'hébergement, mais avec toujours le même résultat...
Merci d'avance de consacrer un peu de votre temps à la résolution de mon problème.
Bonne soirée à vous,
Va_Viper.