2013-04-03 150 views
2

任何人都可以告诉我,如果有可能通过一个状态代码到下一个与jquery statusCode,以便一个响应可以处理2个状态代码?下面的代码中有一个错误,但它显示了我想要实现... 400落空至404jQuery是否有可能通过statusCode?

 

    ,statusCode: { 
     200: function (response) { 
      alert('200'); 
     } 
     ,201: function (response) { 
      alert('201'); 
     } 
     ,400: 
     ,404: function (response) { 
      alert('400 or 404'); 
     } 
    } 

+0

呃,不是开关盒。你可以在外部声明你的状态码/处理器映射,并执行类似'statusCode.400 = statusCode.404 = function(resp){...};' – jmar777

回答

1

最好的,你也许能够做的就是命名匿名函数,并传递一个参考该功能为statusCode对象:

var badRequestOrNotFound = function() { 
    alert('400 or 404'); 
}; 

$.ajax({ 
    statusCode: { 
     200: function (response) { 
      alert('200'); 
     } 
     ,201: function (response) { 
      alert('201'); 
     } 
     ,400: badRequestOrNotFound 
     ,404: badRequestOrNotFound 
    } 
}); 

你也完全放弃statusCode选项,并充分利用xhr参数error回调被传递的status属性:

$.ajax({ 
    error: function (xhr) { 
     switch (xhr.status) { 
      case 404: 
      case 400: 
       alert('400 or 404'); 
       break; 
      case 200: 
       alert('200'); 
       break; 
      case 201: 
       alert('201'); 
       break; 
     } 
    } 
}); 
相关问题