2011-02-08 35 views
5

Tôi muốn phản ứng trên các mã trạng thái http (như 200, 201 hoặc 202) bằng tính năng mới (http://api.jquery.com/jQuery.ajax). Nhưng chức năng là bỏ qua các cuộc gọi lại 201 và 202 của tôi.cách xử lý httpStatuscode chính xác

Lỗi này xảy ra với firefox-4.0_b10 và chromium-9.0

Tôi đang tìm cách khắc phục sự cố nhỏ này.

Trân Stefan

My mã snipped:

 
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

Bạn có chắc chắn nhận được phản hồi 201 và 202 do cuộc gọi mà bạn đang thử nghiệm không? Những gì bạn sẽ muốn làm là hoặc sử dụng fiddler hoặc firebug để kiểm tra các yêu cầu và xem những gì mã trạng thái đang được trả lại. Tôi nghi ngờ đó là phản hồi 200 vì đó là câu trả lời thành công cho yêu cầu GET hoặc POST – Adrian

Trả lời

2

Giải pháp là như sau:

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

Bằng cách nào đó, sự thành công-phương pháp là mâu thuẫn với httpStatusCode-Map

Kính trọng Stefan

+1

Tôi phải dành một phút để tìm ra cách giải pháp của bạn khác với nguồn gốc. Cho đến khi tôi thấy bạn đã nhận xét ra chức năng thành công. Nếu giải pháp của bạn thực sự hoạt động, hãy chấp nhận giải pháp đó làm câu trả lời của riêng bạn! –

Các vấn đề liên quan