2017-02-17 3 views
0

私はPython Flaskサーバーと通信するReactアプリケーションを持っています。フロントエンドからAJAXコールでエラーを処理するFlaskの正しい方法

私は、ユーザーがパスワードを変更できる機能を実装しています。 AJAXリクエストは、React to 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
を明示的に(500など)、関連するHTTPエラーコードのいずれかを送信するためにあなたの応答の構造を変更し

は何かということですあなたのフロントエンドコードに、AJAXがエラーを特定するように指示します。

基本的にはこのような何か:この

の詳細については、

return jsonify(message='password_update_error'),500 

参照フラスコドキュメントhere

関連する問題