При использовании $.ajax в jQuery, как я могу преднамеренно выбросить ошибку в загруженном документе?
В моем документе у меня есть этот script:
$.ajax({ type:"POST",url:"ajax.php",data:data,
success: function() {
//onsuccess
},
error: function() {
//onerror
}
});
Как я могу в документе ajax.php
преднамеренно поставить ошибку? Достаточно ли просто указать код состояния HTTP HTTP или что-то еще? (И если да, то 400 - правильный?)
Почему я спрашиваю, что я хочу использовать это для отправки формы на сервер, и если поле не заполнено должным образом, я хочу предупредить пользователя через параметр ошибки в $.ajax
. Я знаю, что я мог бы сделать это, используя javascript, в первую очередь, но я надеюсь, что смогу сделать это таким образом (так что мне не нужно писать проверку два раза). Но, конечно, делая это таким образом, я не могу отделить разные поля от другого.
Основываясь на том, что я хочу использовать для этого, могу как-то выбросить "пользовательскую ошибку" , поэтому, если поле name
не было заполнено правильно, оно возвращает имя поле (т.е. name
). Достаточно ли сделать что-то вроде этого:
В ajax.php:
if (isFilledOutProperly($name) == false) {
echo "name";
}
else {
echo "success";
}
И:
success: function(data) {
if (data == 'name') {
//error
}
else {
//success
}
},
Возможно, я ошибаюсь, но если у кого-то есть лучшее предложение о том, как я могу это сделать, скажите мне. Спасибо!
Ответы
Ответ 1
Предложение error
вызовов $.ajax()
не относится к тому обстоятельству, о котором вы говорите. error
охватывает случаи, скажем, ошибок HTTP. В этом случае ошибки проверки не являются ошибками. Вам лучше указать те, которые находятся в обратном вызове success
, с соответствующими данными, возвращаемыми с сервера.
Если вы посмотрите документацию:
error(XMLHttpRequest, textStatus, errorThrown)Function
Функция, вызываемая, если запрос выходит из строя. Функция передается три arguments: объект XMLHttpRequest, строка, описывающая тип ошибки это произошло и объект исключения, если он произошел. Возможные значения для второго аргумент (кроме нуля) - это "тайм-аут", "ошибка", "немодифицировано" и "Parsererror". Это Ajax Событие.
Примечание. Условия ошибки, о которых он говорит, - это ошибки синтаксического анализа, тайм-ауты, ошибки (HTTP) и не изменены (это еще один ответ HTTP).
Технически ваш запрос завершается успешно, но проверка не выполняется, что само по себе не является ошибкой.