Domanda

Ho bisogno di valutare la risposta di un Ajax.Request (utilizzando prototipo) con un'istruzione 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 controllo il valore di "risultato" inviato dal script del server la risposta è corretta (una stringa: "ok", "nok" o "quasi" in base ai parametri inviati). Ma per qualche motivo l'interruttore valuta sempre la condizione di default! Ho cercato per concatenare "risultato" con una stringa vuota prima che l'istruzione switch, ma senza fortuna ... Che cosa manco qui?

È stato utile?

Soluzione

Probabilmente perché il risultato contiene un'interruzione di linea. Prova rifilatura con qualcosa del tipo:

var result = response.responseText;
result = result.replace(/^[\s\r\n]+|[\s\r\n]+$/g, "");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top