2017-02-17 81 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進一步的信息,這