私は実際にフラスコで作業しています。 私はフラスコを使ってサーバーを稼動させています。これはクロム拡張(js)によって要求されます。flask.abort()は正確に何をしますか?
拡張からサーバーを要求するのは簡単です:私はchrome.runtime.sendMessage()メソッドを使用します。このメソッドは、JSONオブジェクト(サーバーからの応答)をパラメータとして取得するコールバック関数も提供します。
例えば、私は私のサーバー上でこのルートを持っていることとします
@app.route('/users', methods=['POST'])
def api_login():
if 'username' not in request.json :
return jsonify(success=false)
else :
return jsonify(success=true)
その後、私は私のextenstionにすることができ、より正確には、コールバック関数では、成功値チェック:
function(response) {
if(response.success){
console.log("Login ok !")
}
}
を
しかし、私のチームはもうこれに頼ることを望まず、代わりにhttpエラーコードを使用したいと考えています。フラスコにはアボート機能がありますが、マニュアルを読んでいるうちに、実際に何ができるか理解するのに苦労しました。私の経路を呼び出すとき:
else:
abort(422, {"error":"Missing parameters"})
拡張子(js)でこれらの情報をどのように使うことができますか?アボートが呼び出されると、フラスコは特定のJSONオブジェクトを自動的に返しますか?エラーコードを確認するにはどうしたらいいですか?私は、クライアントコードでそのような何かをしたいと思います:(アボートについてのすべてのStackOverflowスレッドを読んで、私が持っている手がかりの
if(response.status == 422) {
console.log("Error")
}
ワン)デコレータする@ app.errorhandlerを使用して、特定のエラー関数を定義することです(コード):
@app.errorhandler(422)
def myErrorCase(error):
return jsonify(status=422, error="missing parameters")
しかし、私はもっと簡単な方法があると仮定します。
ありがとうございました。