2011-02-08 103 views
5

我想对新功能(http://api.jquery.com/jQuery.ajax)对http状态代码(如200,201或202)做出反应。但是这个函数忽略了我的201和202回调函数。如何正确处理httpStatuscode

此错误与Firefox,4.0_b10和铬9.0

我期待着解决这个问题不大occures。

问候斯特凡

我的代码剪断:

 
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

您确定因为您正在测试的呼叫而获得201和202响应吗?你想要做的是使用小提琴手或萤火虫来检查请求,并查看返回的状态代码。我怀疑这是一个200响应,因为这是GET或POST请求的成功响应 – Adrian 2011-02-08 20:13:05

回答

2

的解决方案如下:

 
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; 
      } 
     }*/ 
     }); 

不知何故,成功,方法是在冲突与httpStatusCode地图

Regania Stefan

+1

我不得不花一分钟时间来弄清楚你的解决方案与原点的不同之处。直到我看到你已经评论了成功功能。如果您的解决方案真的有效,请将其作为您自己的答案! – 2013-02-15 00:26:23