Предотвратить необработанную ошибку AJAX jQuery
Я знаю, как получать данные сервера или ошибки. Есть много способов. Например:
$.ajax({
type: "get",
url: "/widgets/",
success: function (data, text) {
console.log('this is a data');
},
error: function (request, status, error) {
console.log('this is an error');
}
});
Пожалуйста, смотрите это изображение:
![result in chrome developer console]()
У меня есть функция ошибки, и я делаю то, что мне нужно.
Как предотвратить ошибку в первой строке.
Я тестировал ошибки 4xx и 5xx, но никаких различий.
Я знаю, что конечный пользователь не видит эту ошибку, когда консоль разработчика скрыта.
Мне нужно это для разработки API.
Я знаю, что могу отправить 200 ответов от сервера с дополнительным аргументом, который показывает, что это ошибка или результат успеха.
Но если я могу отправить ответы 4xx или 5xx, нет необходимости в дополнительном аргументе.
Этот способ имеет некоторые дополнительные выгоды для меня. Например, я могу применить результат успеха для своих моделей на стороне клиента, не беспокоясь о дополнительных аргументах.
Спасибо
Ответы
Ответ 1
AFAIK вы не можете заставить красные вещи уйти, возвращая коды состояния ошибок (4xx, 5xx). Они используются браузером, чтобы указать, что что-то может не получиться так, как ожидалось. Тем не менее, это просто украшения, поскольку коды статуса 4xx и 5xx совершенно верны, поэтому я не вижу причин, по которым вы хотите их устранить.
Как вы сами сказали, ваша другая альтернатива будет отправлять "200 ответов от сервера с дополнительным аргументом, который показывает, что это ошибка или результат успеха".
Я, конечно, рекомендую использовать коды 4xx и 5xx, хотя (для чего они предназначены) и перестать беспокоиться о предупреждениях в браузере в консоли разработчика (также известный как red thingies).
См. также этот и этот вопрос, который относится к аналогичным ошибкам при получении других видов ресурсов (изображения, файлы и т.д.). Ошибки, которые вы видите, на самом деле имеют одинаковую природу.