2016-07-28 6 views
-1

私はPythonスクリプトをWeb APIとして提供しています。多くのドメインがこれを呼び出して、必要なデータを取得します。だから私はCORSを有効にする必要があります。 Flaskのドキュメントを読んだが、複数のドメインを指定してCORSを許可する方法は見つけられなかった。Flask-CORSのドメインを指定する

from flask_cors import cross_origin 

@app.route("/") 
@cross_origin() 

上記のスニペットは、すべてのドメインのCORSを可能にする:ここ

はCORSを可能コードスニペットです。私はこれをいくつかのドメインの特定のリストに制限したいと思います。私はこのリストをどのように指定できるのか知りたいだけです。ここで私が何をしようとしていますものです:

@cross_origin(["www.domain1.com, www.domain2.com"]) 
+0

元のリストを指定する方法です。あなたはどんな問題を抱えていますか? [編集]に[mcve]を含めるようにしてください。 – davidism

+1

あなたは2つの項目を持つリストを書きませんでした。あなたは1つの項目をコンマで書きました。それは単にタイプミスですか? – davidism

答えて

0

CORSのドキュメントから:だからhttp://flask-cors.corydolphin.com/en/latest/api.html?highlight=origin#flask_cors.cross_origin

flask_cors.cross_origin(*args, **kwargs) The origin, or list of origins to allow requests from. The origin(s) may be regular expressions, case-sensitive strings, or else an asterisk

、ここであなたはstringlistを与える必要があります。同様に:

cross_origin(["http://www.domain1.com", "http://www.domain2.com"])

あなたは、単一の文字列内のすべてのドメインを与えていた、ここで注意してください。しかし、あなたはリストを提供する必要がありました。また、RFC 6454およびW3C Recommendationとしての完全修飾ドメイン名(FQDN)を指定することにも注意してください。

cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

ここでは/apiで始まる我々のアプリ内のすべてのパスを許可している:

また、このような何かを行うことができます。要件に応じて、適切なパスをここで定義できます。ここでは、CORSを有効にするドメインのリストへのオリジンを指定することもできます。ここで

は、私が書いたコードへのリンクです:https://github.com/Mozpacers/MozStar/

CORSは特別何もしません。 Access-Control-Allow-Originには、ドメイン要求の送信元が含まれているという特別なヘッダーでリクエストに返信するだけです。飛行前のリクエストについては

、あなたはフラスコbefore_requestとafter_requestデコレータでカスタムヘッダーを使用して返信することができますどのように見ることができます:https://github.com/CuriousLearner/TrackMyLinks/blob/master/src/server/views.py#L130

私はこのことができます願っています!

関連する問題