2011-02-08 9 views
5

Me gustaría reaccionar en códigos de estado http (como 200, 201 o 202) con la nueva función (http://api.jquery.com/jQuery.ajax). Pero la función es ignorar mis devoluciones de llamadas 201 y 202.cómo manejar httpStatuscode correctamente

Este error occures con firefox-4.0_b10 y cromo-9,0

Estoy deseando para solucionar este pequeño problema.

Saludos Stefan

Mi cortado con tijeras de código:

 
jQuery.ajax({ 
     url: url, 
     dataType: 'json', 
     statusCode: { 
      404:function() { alert("404"); }, 
      200:function() { alert("200"); }, 
      201:function() { alert("201"); }, 
      202:function() { alert("202"); } 
     }, 
     success: function(data){ 
      switch(data.status) { 
      case 'done': 
       /* display it to the User */ 
       break; 
      } 
     }); 
+0

¿Está seguro de que recibirá 201 y 202 respuestas como resultado de la llamada que está realizando? Lo que querrá hacer es usar el violín o el firebug para inspeccionar la solicitud y ver qué código de estado se está devolviendo. Sospecho que es una respuesta de 200 ya que es la respuesta correcta para una solicitud GET o POST – Adrian

Respuesta

2

La solución es la siguiente:

 
jQuery.ajax({ 
     url: url, 
     dataType: 'json', 
     statusCode: { 
      404:function() { alert("404"); }, 
      200:function() { alert("200"); }, 
      201:function() { alert("201"); }, 
      202:function() { alert("202"); } 
     }/*, 
     success: function(data){ 
      switch(data.status) { 
      case 'done': 
       /* display it to the User */ 
       break; 
      } 
     }*/ 
     }); 

De alguna manera, el éxito método está en conflicto con la HttpStatusCode-Mapa

Saludos a Stefan

+1

Tuve que pasar un minuto tratando de descubrir cómo difería su solución del origen. Hasta que vi que habías comentado la función de éxito. Si su solución realmente funciona, ¡acéptela como su propia respuesta! –

Cuestiones relacionadas