ajax - 如何使用CakePHP处理json api调用的应用程序错误?

标签 ajax json cakephp error-handling cakephp-2.3

我正在使用CakePHP 2.4。

我希望前端使用ajax对我的CakePHP后端进行api调用。

假设这是要更改密码。

更改密码操作可能引发以下应用程序错误:

  • 旧密码错误
  • 新密码并确认新密码与
  • 不匹配

    在我的前端,我有一个成功回调处理程序和一个错误回调处理程序。

    错误回调处理程序处理所有非200请求调用,例如当我在操作中抛出NotFoundException或UnAuthorizedAccessException时。

    成功回调处理程序处理所有200个请求调用,当然包括上述2种情况。

    我的问题是:
  • 我应该继续这样做吗?意思是说,在所有成功回调处理程序中,我需要当心应用程序成功和应用程序错误情况。
  • 我应该使用实际的HTTP错误代码将应用程序错误发送回去吗?

  • 如果我应该做2,如何在CakePHP中实现呢?

    谢谢。

    最佳答案

    请勿将http错误代码用于系统错误,例如:

  • 旧密码错误
  • 新密码并确认新密码与
  • 不匹配
  • 等等等...

  • 现在,使用成功处理程序,您可以将消息和代码流显示为:

    创建Ajax帖子或提交表单,我向您展示帖子示例
    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."
     }
    

    在 Controller 中创建一个功能
    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?
    
      }
    }
    

    做这样的事情,希望它能解决您的查询!

    关于ajax - 如何使用CakePHP处理json api调用的应用程序错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21248913/

    相关文章:

    ruby-on-rails - Rails Devise 禁用 ajax 请求的重定向

    javascript - 更改ajax中按钮的文本

    ios - 请求 addValue : forHTTPHeaderField gets the token but does not sends it to server in RestKit

    jquery - getJSON 未读取 JSON 数组

    php - CakePHP登录问题

    php - 任何可嵌入的文档查看器

    session - 修改 CakePHP session 的 session cookie 到期和 session 超时

    jquery - 在回调协助结束时触发 jQuery 函数?

    c# - 使用 Cookie 或其他方法保护 WFC/JSON 上的数据 session

    JQuery 通过文件上传进行验证