ホームページ >バックエンド開発 >Python チュートリアル >Flask でクロスオリジン リソース共有 (CORS) を実装する方法: ステップバイステップ ガイド

Flask でクロスオリジン リソース共有 (CORS) を実装する方法: ステップバイステップ ガイド

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-28 09:43:01996ブラウズ

How to Implement Cross-Origin Resource Sharing (CORS) in Flask: A Step-by-Step Guide

Flask の CORS: クロスオリジン リクエストを有効にするためのステップバイステップ ガイド

クロスオリジン リソース シェアリング (CORS) はWeb アプリケーションでクロスドメイン リクエストを許可するための重要なメカニズム。人気の Python ベースの Web フレームワークである Flask は、CORS の組み込みサポートを提供し、クロスオリジン アクセスを簡単に有効にします。

Flask で CORS を有効にする

CORS ヘッダーがないために「XMLHttpRequest を読み込めません」エラーが発生した場合は、次の手順に従ってください:

  1. flask-cors をインストールします:

    <code class="shell">pip install Flask-CORS</code>
  2. Flask に CORS をインポート:

    <code class="python">from flask_cors import CORS</code>
  3. CORS オブジェクトを初期化:

    <code class="python">cors = CORS(app)</code>
  4. CORS ヘッダーの構成:
    CORS 構成を更新して、クロスオリジン要求に許可されるヘッダーを指定します。デフォルトでは、Flask-CORS は「Content-Type」ヘッダーのみを許可します。必要に応じてこれを拡張して、「Authorization」などの追加のヘッダーを含めることができます。

    <code class="python">app.config['CORS_HEADERS'] = 'Content-Type, Authorization'</code>
  5. 特定のルートに CORS を適用する:
    ラップ@cross_origin() デコレータを使用してルートを指定すると、その特定のルートに対して CORS が有効になります。

    <code class="python">@app.route("/")
    @cross_origin()
    def my_route():
        ...</code>

または、デコレータをすべてのルートにグローバルに適用できます:

<code class="python">@app.after_request
def after_request(response):
    response.headers.add('Access-Control-Allow-Origin', '*')
    response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
    return response</code>

これらの手順を実行すると、Flask は必要な CORS ヘッダーを応答に自動的に追加し、他のドメインからのクロスオリジンリクエストを許可します。

追加メモ

  • Heroku を使用して Flask アプリケーションをデプロイしている場合は、Procfile で CORS を手動で構成する必要がある場合があります。
  • Access-Control-Allow-Origin ヘッダーを適切なドメインに設定することを忘れないでください。リクエストの送信元。
  • 詳細な情報とオプションについては、Flask-CORS ドキュメントを参照してください: http://flask-cors.readthedocs.org/en/latest/

以上がFlask でクロスオリジン リソース共有 (CORS) を実装する方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。