2011-11-14 17 views
5

Estoy experimentando algo raro aquí, que no recuerdo haber topado nunca. Estoy haciendo una llamada normal $ .ajax a mi servidor (backend codeigniter) y si no se encuentra algún recurso, estoy devolviendo algún mensaje de error junto con un encabezado 404. jQuery reconoce que se ha producido un error y ejecuta las devoluciones de llamada de error adecuadas. El problema es que también arroja una excepción js en el navegador, por lo que firebug se quejará (o cualquier consola js que el navegador pueda estar usando). ¿Es este un nuevo comportamiento? No recuerdo que jquery haya lanzado un error js cuando se devuelve un encabezado 404. código correspondiente a continuación:

$.extend({ 
    gallery: function (url, data) { 
     //send a request to an arbitrary url with some data. Expects to 
     //get json returned. 
     return $.ajax(State.url + url, $.extend({ 
      dataType: 'json', 
      type: 'post' 
     }, data)); 
    } 
}); 

anterior es mi función ajax mundial que utilizo en mi aplicación. He intentado varios sabores de las funciones de error en esa función pero fue en vano, siempre recibí un error js en firebug. ¿Algunas ideas? El error de js real que estoy recibiendo es:

NetworkError: 404 Not Found 
+0

¿Qué es State.url? –

+0

sí, es extraño que arroje una excepción JS. siempre podría envolverlo en un 'try {} catch {}', pero no creo que deba hacer eso ... – mpen

+0

sería curioso ver un ejemplo de cómo se están manejando los errores. Supongo que está utilizando el parámetro "error" en la llamada .ajax (el código proporcionado es una extensión, ¿correcto?). También puede usar los códigos de estado para detectar el 404, aunque probablemente no quiera microgestionar cada uno de los códigos de estado. –

Respuesta

2

Ésta es su función de consola, no un Gotcha jQuery. Intenta manipular las opciones de tu consola. Incluso Google Chrome dice que XHR falló o algo así.

P.S: Firebug nunca utilizado. Pero debe ser algo allí solo.

+0

Estás en lo correcto Nishchay, era una configuración específica de Firebug. ¡Gracias! – Greg

Cuestiones relacionadas