2011-07-27 48 views
2

我正在嘗試使用自定義http狀態消息做出響應,並使用jQuery Ajax在客戶端捕獲它。2xx範圍內的jQuery ajax自定義HTTP狀態消息

我想出了一種僅對錯誤消息(HTTP 4xx,5xx)執行操作的方法,但不能成功執行http消息(HTTP 2xx)。

作爲例子,我設法從HTTP 400 FROG CATCH狀態提取和警報「FROG CATCH」,但不能從HTTP 200 FROG ESCAPE

提醒蛙ESCAPE「是否有任何身體知道的方式來擴展jQuery的阿賈克斯,用來支持模式的種類?

有人嗎?

回答

0

AJAX響應基於成功和錯誤。如果您的內容以200狀態(OK),304(未修改)等返回,那麼AJAX調用將利用您的成功響應部分,而不是通常顯示狀態的錯誤部分(錯誤部分中的狀態主要用於指示錯誤的原因)。根據您要返回的內容以及您將其返回的格式,您應該查看該響應的成功部分。假設你的服務器端語言是PHP,你可能包括在返回的數據成功狀態(轉換成JSON對象解析),像這樣:

$.ajax({ 
    url : 'your_url.php', 
    type : 'POST', 
    dataType : 'JSON', 
    data : yourData, 
    success : function(data) { 
     if(data) { 
      if(data.status) { 
       alert('Status: ' + data.status); 
      } 
     } 
    }, 
    error : function(xhr, response, status) { 
     alert('Response: ' + response.responsetext); 
    } 
}); 

通過利用你的JSON對象作爲身份的載體,可以自定義你的狀態響應。至於看到實際的服務器頭響應是什麼,這將列在Chrome檢查器的網絡選項卡,Firebug的網絡選項卡或Safari的開發工具部分(我忘記了名字)。