Pregunta

necesito para evaluar la respuesta de un Ajax.Request (usando prototipo) con una sentencia 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 puedo comprobar el valor de "número" enviado por el script del servidor la respuesta es correcta (una cadena: "ok", "nok" o "casi" en función de los parámetros enviados). Pero por alguna razón el interruptor siempre se evalúa la condición por defecto! Traté de concatenar "número" con una cadena vacía antes de la sentencia switch, pero no hubo suerte ... ¿Qué me estoy perdiendo aquí?

¿Fue útil?

Solución

Probablemente porque el resultado contiene un salto de línea. Trate de recorte con algo como:

var result = response.responseText;
result = result.replace(/^[\s\r\n]+|[\s\r\n]+$/g, "");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top