Flaaskがドメイン間要求を実現する処理方法


FlashkがRESTfulバックエンドを開発する時、フロントエンド要求はドメインをまたぐ問題に出会うことができます。以下は解決方法です。
flash-corsライブラリを使うと簡単に解決できます。

pip install flask-cors
二つの方法のうち、一つはグローバル/バルクで、一つは単一独立である。
安全のために、独立した方法を使うのが一般的です。
1.独立方式
ルートに@cross_を追加します。オリジンマークでいいです

from flask import Flask, jsonify
from flask_cors import cross_origin

@app.route('/upload', methods=['POST', 'OPTIONS'])
@cross_origin()
def upload():
  # todo
  result_text = {"result": "True"}
  return jsonify(result_text)

2.グローバル方式
簡単です

from flask import Flask
from flask_cors import CORS

if __name__ == '__main__':
  app.run(host='0.0.0.0', threaded=True, debug=True)
  CORS(app)
このようにすべてのルートはドメイン横断をサポートします。
3.ロット方式
ルートの正則によって大量にコントロールするなど、より柔軟に、公式文書を見ることができます。
要求されたResonse headerにheaderを追加します。

@app.after_request
def af_request(resp): 
"""
#    ,           ,  headers。
:param resp:
:return:
"""
resp = make_response(resp)
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
return resp
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。