Ahora mis publicaciones ajax disparan sus eventos de Error incluso si la acción no causó un error. Tengo una acción ASP.NET MVC que se parece a:¿Qué devolver desde la acción MVC de ASP.NET para permitir que el evento de éxito jQuery ajax se active?
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult StuffToDo(int id)
{
// do various things that work ...
return new JsonResult(); // i have to return something, so this...
}
En el lado del cliente tengo este 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;
});
Si la acción se realiza correctamente (no hay excepciones lanzadas), entonces yo esperaría que el controlador de eventos de éxito que se activará. En cambio, el evento de error se está disparando. ¿Hay algo que debería pasar o cambiar en la acción para que el evento de éxito se dispare?
Me doy cuenta de que esta pregunta es básicamente la misma que this other question, pero mi controlador de errores ya tiene la firma expandida que resolvió la pregunta de la otra persona.
Edición Por la petición, aquí está la respuesta que estoy recibiendo:
Link to the screen shot (no estoy seguro cómo demostrarlo en cuestión)
Edición he cambiado el devuelve valor a Null para ver si eso afectó algo, pero no cambió el comportamiento.
Edición Su empezando a parecerse a esto es un problema con HTTPS. Recibo respuestas múltiples de la solicitud. Los dos primeros son 401 mensajes y luego obtengo un 200.
Qué hay en la respuesta HTTP? – Pointy
¿puede publicar una captura de pantalla de la respuesta de solicitud de Firebug desde la consola – Cherian
y cuál es el xhr.responseText? –