Utilizo jquery para publicar en una acción del controlador MVC que devuelve una tabla de información. El usuario de la página activa esto haciendo clic en varios enlaces.¿Por qué la llamada abort() en la solicitud ajax causa un error en ASP.Net MVC (IE8)
En el caso de que el usuario decida hacer clic en un grupo de estos enlaces en rápida sucesión, quería cancelar cualquier solicitud anterior de Ajax que no haya finalizado.
He descubierto que cuando hago esto (aunque su fina del POV del cliente) que se producirán errores en la aplicación web diciendo que
"The parameters dictionary contains a null entry for parameter srtCol of non-nullable type 'System.Int32'"
Ahora el puesto ajax pasa duda alguna en toda la parámetros, y si no intento y cancelo la solicitud de Ajax, funciona bien.
Pero si cancelo la solicitud llamando a abort() en el objeto XMLHttpRequest que devuelve ajax() antes de que termine, recibo el error de ASP.Net MVC.
Ejemplo:
//Cancel any pevious request
if (req)
{
req.abort();
req = null;
}
//Make new request
req = $.ajax({
type: 'POST',
url: "/Myapp/GetTbl",
data: {srtCol: srt, view: viewID},
success: OnSuccess,
error: OnError,
dataType: "html"
});
me he dado cuenta que esto sólo sucede es IE8. En FF parece que no es un problema.
¿Alguien sabe cómo cancelar una solicitud de Ajax en IE8 sin causar errores para MVC?
Gracias por cualquier ayuda.
Sospecho que tienes razón. Pero no estoy seguro de cómo reescribir mi código JS para que OnSuccess se ignore para la solicitud abortada pero se ejecute para solicitudes no anuladas. ¿Podrías darme un ejemplo? – user169867
Me gusta. Creo que eso funcionará ¡Muchas gracias! – user169867
¡Ningún problema! Espero que funcione. – kevingessner