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?

Était-ce utile?

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
scroll top