【问题标题】:Flask correct way to handle errors with AJAX call from front endFlask 处理前端 AJAX 调用错误的正确方法
【发布时间】:2017-02-17 08:54:06
【问题描述】:

我有一个与 Python Flask 服务器通信的 React 应用程序。

我正在实现一项允许用户更改密码的功能。 AJAX 请求是从 React 向 Flask 发出的。这会发送旧密码和新密码。

我在前端做所有检查以确保密码符合要求。

从前端Flask发送数据后,检查旧密码是否正确,然后更新新密码。这会将200 响应发送回客户端。当一切顺利时,我就没有问题了。

但是,我不确定在用户发送200状态,但是返回的json消息不同的情况下该怎么办。

我的问题实际上是在这个阶段是否应该在这里发送错误响应。

这就是我的代码的样子

@customer.route('/update-password', methods=['POST'])
def update():
    current_password=request.json['currentPassword']
    password=request.json['newPassword']

    login_response = engine.login('testUser', current_password)
    if login_response.get('success'):
        password_response = engine.update_user_password(password=password)
        if password_response.get('success'):
            return jsonify(message='password_updated_success')
        else:
            return jsonify(message='password_update_error')
    else:
        return jsonify(message='incorrect_password_provided')

这是我的前端代码

axios.post('update-password', {
    currentPassword: oldPassword,
    newPassword: newPassword
}).then(response => {
    dispatch(updatePasswordSuccess());
    resolve(response);
}).catch(err => {
   dispatch(updatePasswordError());
   reject(err);
});

【问题讨论】:

    标签: javascript python ajax reactjs flask


    【解决方案1】:

    更改您的响应结构,将相关的 HTTP 错误代码之一(如 500)显式发送到您的前端代码,以便 AJAX 识别发生了错误。

    基本上是这样的:

    return jsonify(message='password_update_error'),500
    

    请参阅 Flask 文档 here 了解更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-08
      • 1970-01-01
      • 2012-10-06
      • 2019-05-17
      • 2017-09-04
      • 1970-01-01
      • 2019-03-04
      • 2021-07-02
      相关资源
      最近更新 更多