В моем документе у меня есть этот сценарий:
$.ajax({ type:"POST",url:"ajax.php",data:data,
success: function() {
//onsuccess
},
error: function() {
//onerror
}
});
Как может я, в документе ajax.php
, сознательно бросьте ошибку? Действительно ли достаточно просто бросить 400 Кодов состояния 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
}
},
Я могу быть на ложном пути здесь, но если у кого-то есть лучшее предложение о том, как я могу сделать это, скажите мне. Спасибо!
Предложение error
в вызовах $. Ajax ()
на самом деле не связано с обстоятельствами, о которых вы говорите. ошибка
касается, например, ошибок HTTP. В этом случае ошибки проверки на самом деле не являются ошибками. Лучше указать тех, кто в обратном вызове success
, с соответствующими данными, возвращенными с сервера.
Если вы посмотрите на документацию :
error (XMLHttpRequest, textStatus, errorThrown) Function
Функция, которая будет вызываться, если запрос завершится неудачно . Функции передаются три аргумента : объект XMLHttpRequest, строка, описывающая тип возникшей ошибки и необязательный объект исключения , если таковая произошла. Возможные значения для второго аргумента (помимо null): "тайм-аут", "ошибка", "немодифицировано" и "ошибка синтаксического анализатора". Это событие Ajax .
Примечание: условия ошибки, о которых он говорит, - это ошибки синтаксического анализа, тайм-ауты, ошибки (HTTP) и отсутствие изменений (что является еще одним ответом HTTP).
Технически ваш запрос выполняется успешно, но проверка не выполняется, что само по себе не является ошибкой.