#c# #asp.net #ajax #asp.net-mvc
Вопрос:
Я наткнулся на вызов AJAX, который выполнял эти три действия при ответе:
success: function () {
alert('Success');
},
failure: function () {
alert('Failure');
},
error: function (response) {
alert(response.responseText);
}
Я пытаюсь вернуть «неудачу» внутри ASP.NET контроллер, но не уверен, что это возможно:
напр.
[HttpGet]
public JsonResult CallFromAjax()
{
if (0 > 5)
{
return Json(true);
}
else
{
return Json(false);
}
}
Я знаю, почему это не работает — ответ все еще успешен, и то, что я буду делать, — это обработка true
или false
внутри метода Ajax success
.
Но что мне на самом деле нужно было бы сделать, чтобы заставить его ответить «неудачей»??
Является ли сбой на самом деле отсутствием ответа (например, возможно, из-за сбоя Интернета), поэтому его нельзя эмулировать?
Как я могу отреагировать на НЕУДАЧУ и как я могу отреагировать на ОШИБКУ?
Комментарии:
1. Установите код состояния ответа, отличный от 200, в другое условие.
Ответ №1:
Я еще немного поискал в Google после того, как нашел результаты только для error
и success
и да, в основном это была проблема с таймаутом — так что это можно было проверить, реализовав sleep
wait
функцию или на сервере, я думаю:
Что такое сбой Ajax? Метод $. ajax позволяет установить время ожидания в миллисекундах. Когда наступает тайм-аут, вызывается обратный вызов с ошибкой, для которой установлено значение «тайм-аут». Запрос прерывается, что означает, что даже если ответ придет позже, ваш выполненный обратный вызов не будет вызван jQuery.