PHP如何傳遞Ajax成功或失敗的狀態?HTTP Status Codes可以實現

來源:互聯網
上載者:User

一般處理Ajax 回應時會傳送的資訊種類有:資料、成功資訊、錯誤資訊、失敗資訊以及處理狀態,傳遞的資訊種類並不一致,再加上除了資料之外,通常還希望能傳遞處理狀態,這種情況大部分會選擇是以JSON 的方式傳遞這兩個資訊,以下是常見的幾種格式:

但以執行狀態跟操作行為作一個歸納,可以區分以下幾種傳遞結果:

{ code: 1, msg: "OK" } { success: true , result: "data" , errorMsg: "" } { status: 'success' , result: [], errorMsg: "" } //...

但以執行狀態跟操作行為作一個歸納,可以區分以下幾種回傳結果:

資料操作 HTTP Method 成功 錯誤/失敗

讀取(Read) GET 資料 錯誤/失敗資訊

新增 (Create)  POST 成功資訊 錯誤/失敗資訊
修改 (Update)
刪除 (Delete)

從上面的歸納可以看出規律性,接著只要有方法可以傳送處理的狀態,以及能夠區分資料的種類,其實就單純很多,而HTTP Status Codes 就是用來傳遞HTTP 的處理狀態,如果利用這個方式來傳遞自訂的處理狀態,這樣HTTP Content 就可以很單純傳遞資料,讓資料格式不受限於JSON,還可以使用其他格式(text, xml, html),而且XMLHttpRequest 本身就有處理HTTP Status Codes 的能力,而jQuery.ajax 也有提供error status 的處理,所以可以利用這個來定義狀態的處理,在HTTP Status Codes 有幾個已經定義狀態,很適合用來傳遞處理狀態的資訊:

400Bad Request錯誤的請求適用在表單內容的錯誤,如必填欄位未填、Email 格式錯誤

403Forbidden沒有許可權,被禁止的適用在沒有登入或許可權不足

500Internal Server Error內部伺服器錯誤適用在程式的錯誤

jQuery 接收資訊的範例

 

 代碼如下 複製代碼
$.ajax({   
   type: "POST" ,   
   url: document.location,   
   success: function (data, textStatus, jqXHR) {   
       alert(data);   
   },   
   error: function (jqXHR, textStatus, errorThrown) {   
       alert(jqXHR.responseText);   
   }   
}); 

 

PHP 傳遞錯誤資訊的範例

 

 代碼如下 複製代碼
if (php_sapi_name() == 'cgi' ){   
   header ( "Status: 400 Bad Request" );   
} else {   
   header ( "HTTP/1.0 400 Bad Request" );   
}   
exit ( "儲存失敗!!" );  

 

C# MVC 傳遞錯誤資訊的範例

 

 代碼如下 複製代碼
Response.TrySkipIisCustomErrors = true ;   
Response.StatusCode = 400;   
return Content( "儲存失敗!!" );   

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.