Функция «успех» в Ajax / jQuery - PullRequest
3 голосов
/ 16 мая 2011

У меня проблемы с отображением значения из функции успеха моего вызова Ajax.Мой код выглядит следующим образом.

$.ajax({
    type: "POST",
    url: "http://localhost/practical 8/checkuser.php",
    data: form_data,
    success: function(response)
    {
        if(response == 'success'){
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }else if(response == 'fail'){
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }
    }
});

Мой checkuser.php в основном выдает "succcess" или "fail".

My if и else, если операторы в моей функции успеха являютсяне работает.Но выполнение

$.ajax({
    type: "POST",
    url: "http://localhost/practical 8/checkuser.php",
    data: form_data,
    success: function(response)
    {
            $("#errorUsername").html("<label class='error'>"+response+"</label>");
        }
    }
});

работает отлично.Что я делаю не так?

Ответы [ 4 ]

5 голосов
/ 16 мая 2011

Я не буду критиковать ветки if, приводящие к одному и тому же коду, и предположу, что это просто для целей тестирования.

Вы захотите проверить наличие дополнительного пробела, отправляемого из скрипта PHP.Это объясняет, почему условные выражения javascript не возвращают true.

Вы также можете обрезать ответ с помощью jQuery: response = jQuery.trim(response);

1 голос
/ 16 мая 2011

Может быть новая строка в строке.Попробуйте:

response = $.trim(response)

if(response == 'success'){
  $("#errorUsername").html("<label class='error'>"+response+"</label>");
}else if(response == 'fail'){
  $("#errorUsername").html("<label class='error'>"+response+"</label>");
}
0 голосов
/ 25 ноября 2013

Я согласен со всеми ответами на эту тему, однако вы не должны использовать пробелы в URL, потому что это вызывает проблемы. Используйте _ вместо пробелов, если хотите, но вызывающе не пробелы в ваших URL. Попробуйте все рекомендации, и это должно решить ваши проблемы.

0 голосов
/ 16 мая 2011

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

success: function (data, textStatus) {
    if (textStatus === "success" || textStatus === "fail") {
        // do something
    }
}

Обратите внимание, что успешный ответ просто означает, что запрос выполнен успешно, не обязательно, чтобы ваш код выдал ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...