2013-09-10 61 views
0
$.ajax({ 
        type: "POST", 
        url: "/find", 
        data: {coupon_name:value}, 
        success: function(response) { 
         alert("success") 
        }, 
        error: function(xhr, ajaxOptions, thrownError) { 
         alert(thrownError); 

        } 
       }); 

我在我的PHP頁面中「回聲」以拋出錯誤?基本上我使用ajax函數來計算返回的數字,如果它需要將錯誤返回給JS。通過cakephp返回javascript錯誤

+0

你可以在這裏看看「迴應什麼」:http://book.cakephp.org/2.0/en/development/exceptions.html – porfiriopartida

+0

它值得注意的是,兩者都回答到目前爲止(我的和@ Amadan的)提到觸發'.error()'可能是錯誤的。 –

回答

0

jQuery specification定義.error()爲:

一個函數,如果請求不被調用。

故障HTTP代碼是一個在400S或500S,所以CakePHP的等效的:

<?php 
    http_response_code(500); 
?> 

應該觸發它。

這就是說,我不知道,拋出一個錯誤是在你的情況不一定正確 - 您的查詢實際上並沒有出錯,只是返回結果爲零。因此,無論如何,你最好在.success()函數中處理這個問題。

0

我建議你離開錯誤的實際HTTP有關的緊急情況,並處理你的迴應你的代碼邏輯。最簡單的方法是使響應爲JSON,如果你遇到一個錯誤返回的JSON的error組件,並手動檢查它的存在。

這就是說,你可以使用$this->controller->response->statusCode(400)(CakePHP中)或類似的發送狀態代碼,會觸發一個錯誤的條款。但我建議反對它。