2014-01-21 35 views
0

我正在使用CakePHP 2.4。如何使用CakePHP處理json api調用的應用程序錯誤?

我希望我的前端使用ajax將API調用給我的CakePHP後端。

假設這是更改密碼。

更改密碼的動作可以拋出以下應用程序錯誤:

  1. 舊密碼錯誤
  2. 新密碼並確認新密碼不匹配

在我的前端,我有一個成功的回調處理程序和錯誤回調處理程序。

錯誤回調處理程序處理所有非200請求調用,例如當我在我的操作中拋出NotFoundException或UnAuthorizedAccessException時。

成功回調處理程序處理所有的200個請求調用,當然包括上述兩種情況。

我的問題是:

  1. 我要繼續做這種方式?這意味着,在所有成功的回調處理程序中,我需要注意應用程序成功和應用程序錯誤情況。
  2. 我是否應該用實際的HTTP錯誤代碼發回應用程序錯誤?

如果我應該做2,我該如何在CakePHP中實現這個?

謝謝。

回答

0

不要使用HTTP錯誤代碼像系統錯誤:

  1. 舊密碼錯誤
  2. 新密碼並確認新密碼不匹配
  3. 等等...

現在使用成功處理程序,您可以將消息和代碼流顯示爲:

創建Ajax文章或轉到submi t爲形式,我向您展示張貼例如

var passwordValue = $('#password').val(); 
$.post("/updatePassword", { passwordText: passwordValue }) 
       .done(function(response) { 
       if(response.status === 'Success'){ 
        // Success msg 
        // whatever     
       }else{ 
        // Error msg 
        // whatever  
       } 

       }); 

JSON響應想:

{ 
"status": "Failed/Success", 
"message": "old password wrong." 
} 

在控制器

public function updatePassword() { 

$myModel = $this->MyModel->find('first' // YOUR CODE LOGIC); 

if($this->request->is('ajax') { 
    $this->layout=null; 
    // What else? 
    echo json_encode($myModel); 
    exit; 
    // What else? 

    } 
} 

做這樣的事情創建一個功能,希望這將解決您的查詢!

相關問題