instruction Switch évalue toujours la condition par défaut
-
19-09-2019 - |
Question
Je dois évaluer la réponse d'un Ajax.Request (en utilisant prototype) avec une instruction switch:
new Ajax.Request('http://localhost/somescript.php',{method:'post',parameters:params,onSuccess:
function(response)
{
var result = response.responseText;
switch (result)
{
case "ok":
//do something...
break;
case "nok":
//do something...
break;
case "almost":
//do something...
break;
default:
//do something...
}
}
});
si je vérifie la valeur du « résultat » envoyé par le script serveur la réponse est correcte (une chaîne: « ok », « nok » ou « presque » en fonction des paramètres envoyés). Mais pour une raison quelconque le commutateur évalue toujours la condition par défaut! J'ai essayé de concaténer « résultat » avec une chaîne vide avant l'instruction switch, mais pas de chance ... Que suis-je manque ici?
La solution
Probablement parce que le résultat contient un saut de ligne. Essayez la coupe avec quelque chose comme:
var result = response.responseText;
result = result.replace(/^[\s\r\n]+|[\s\r\n]+$/g, "");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow