Прямо сейчас все мои записи ajax запускают события Error, даже если действие не вызвало ошибку. У меня есть действие ASP.NET MVC, которое выглядит следующим образом:
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult StuffToDo(int id)
{
// do various things that work ...
return new JsonResult(); // i have to return something, so this...
}
На стороне клиента у меня есть этот jQuery:
$('#actionClick').click(function() {
if (confirm('Are you sure?')) {
$.ajax({
type: "POST",
url: "/Customer/StuffToDo/<%= Model.Customer.Id %>",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: function() {
ShowSuccessResult("Yay!");
},
error: function(xhr, ajaxOptions, thrownError) {
ShowErrorResult("Boo! Message:" + xhr.responseText);
}
});
}
return false;
});
Если действие выполнено успешно (исключений нет), я ожидаю, что обработчик события успеха будет запущен. Вместо этого происходит событие ошибки. Есть ли что-то, что я должен передать назад или изменить в действии, чтобы произошло событие успеха?
Я понимаю, что этот вопрос в основном такой же, как и этот другой вопрос, но мой обработчик ошибок уже имеет расширенную сигнатуру, которая решает вопрос другого человека.
Я изменил возвращаемое значение на Null, чтобы посмотреть, повлияло ли это на что-либо, но не изменилось поведение.
Похоже, это проблема с HTTPS. Я получаю несколько ответов на запрос. Первые 2 сообщения 401, а затем я получаю 200.