Оператор Switch всегда оценивает состояние по умолчанию

StackOverflow https://stackoverflow.com/questions/2042655

Вопрос

Мне нужно оценить ответ Ajax.Request (с использованием прототипа) с помощью оператора переключения:

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...
        }
    }
    });

если я проверю значение «результата», отправленное серверным скриптом, ответ будет правильным (строка:«ок», «нок» или «почти» в зависимости от отправленных параметров).Но почему-то коммутатор всегда оценивает состояние по умолчанию!Я пытался объединить «результат» с пустой строкой перед оператором переключения, но безуспешно...Что мне здесь не хватает?

Это было полезно?

Решение

Вероятно, потому, что результат содержит разрыв строки.Попробуйте обрезать его чем-то вроде:

var result = response.responseText;
result = result.replace(/^[\s\r\n]+|[\s\r\n]+$/g, "");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top