Pergunta

Preciso avaliar a resposta de um ajax.request (usando protótipo) com uma instrução 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...
        }
    }
    });

Se eu verificar o valor de "resultado" enviado pelo script do servidor, a resposta está correta (uma string: "ok", "Nok" ou "quase", dependendo dos parâmetros enviados). Mas, por algum motivo, o interruptor sempre avalia a condição padrão! Tentei concatenar "resultado" com uma string vazia antes da declaração do Switch, mas sem sorte ... o que estou perdendo aqui?

Foi útil?

Solução

Provavelmente porque o resultado contém uma quebra de linha. Tente apará -lo com algo como:

var result = response.responseText;
result = result.replace(/^[\s\r\n]+|[\s\r\n]+$/g, "");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top