Подтвердить что ты не робот

При использовании $.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
    }
},

Возможно, я ошибаюсь, но если у кого-то есть лучшее предложение о том, как я могу это сделать, скажите мне. Спасибо!

4b9b3361

Ответ 1

Предложение error вызовов $.ajax() не относится к тому обстоятельству, о котором вы говорите. error охватывает случаи, скажем, ошибок HTTP. В этом случае ошибки проверки не являются ошибками. Вам лучше указать те, которые находятся в обратном вызове success, с соответствующими данными, возвращаемыми с сервера.

Если вы посмотрите документацию:

error(XMLHttpRequest, textStatus, errorThrown)Function

Функция, вызываемая, если запрос выходит из строя. Функция передается три arguments: объект XMLHttpRequest, строка, описывающая тип ошибки это произошло и объект исключения, если он произошел. Возможные значения для второго аргумент (кроме нуля) - это "тайм-аут", "ошибка", "немодифицировано" и "Parsererror". Это Ajax Событие.

Примечание. Условия ошибки, о которых он говорит, - это ошибки синтаксического анализа, тайм-ауты, ошибки (HTTP) и не изменены (это еще один ответ HTTP).

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