gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:57:04 25 4
gpt4 key购买 nike

我正在使用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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com