2017-02-17 86 views
0

我有一个与Python Flask服务器通信的React应用程序。烧瓶正确的方式来处理来自前端的AJAX调用的错误

我正在实现一项功能,允许用户更改密码。 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); 
}); 

回答

2

更改您的回复结构,明确发送相关HTTP错误代码之一(如500)到您的前端代码,这样AJAX将识别出现错误。

基本上是这样的:

return jsonify(message='password_update_error'),500 

见瓶文档here进一步的信息,这