Je débute en ajax mais avant je n'avais pas ce problème
Le but de mon code : lors d'une inscription vérifier automatiquement si le pseudo choisi est disponible (comme lorsque l'on s'inscrit sur ce forum d'ailleurs)
J'ai essayé de plusieurs manières notamment avec "prototype.js" que vous connaissez surement
CODE
function dispo_user(pseudo){
send = "pseudo="+pseudo;
var ajax = new Ajax.Updater
("message","dispo_user.php",
{
evalScripts:true,
parameters: send,
method:'POST',
onComplete: onFinish()
}
);
function onFinish(){
}
}
send = "pseudo="+pseudo;
var ajax = new Ajax.Updater
("message","dispo_user.php",
{
evalScripts:true,
parameters: send,
method:'POST',
onComplete: onFinish()
}
);
function onFinish(){
}
}
j'ai essayé également de cette façon
CODE
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
document.getElementById('message').innerHTML = reponse;
}else{
alert(xhr.responseText);
}
}
// Appel de la page en méthode POST
xhr.open("POST","dispo_user.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// envoi des arguments
xhr.send("pseudo="+pseudo);
(en définissant au préalable xhr)xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
reponse = xhr.responseText;
document.getElementById('message').innerHTML = reponse;
}else{
alert(xhr.responseText);
}
}
// Appel de la page en méthode POST
xhr.open("POST","dispo_user.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// envoi des arguments
xhr.send("pseudo="+pseudo);
Les faits :
en local sur mon PC cela fonctionne
en local sur un MAC cela fonctionne aussi
en ligne sur un serveur de celeonet.fr cela fonctionne aussi
mais quand je mets en ligne sur le 60GP de ovh le serveur de destination cela me retourne une erreur 500
Après de multiple test j'ai découvert que c'est le xhr.status qui n'est pas égal à 200 mais à 500 d'où l'erreur
ce qui m'étonne c'est que l'ajax est un code qui s'éxécute côté client même si je fais appelle à du php pour avoir ma réponse le serveur ne devrait pas poser de problème
Si quelqu'un pouvait m'aider pour résoudre ce problème je l'en remerci d'avance
