ホームページ > バックエンド開発 > Python チュートリアル > Flask アプリケーションの CORS 問題を解決する方法: なぜ「Access-Control-Allow-Origin」ヘッダーが必要なのでしょうか?

Flask アプリケーションの CORS 問題を解決する方法: なぜ「Access-Control-Allow-Origin」ヘッダーが必要なのでしょうか?

Barbara Streisand
リリース: 2024-10-31 01:42:01
オリジナル
972 人が閲覧しました

How to  Solve CORS Issues in Flask Applications: Why

Flask アプリケーションで CORS の問題を解決する方法

クロスオリジン (CORS) リクエストを行う場合、欠落によるエラーが発生するのが一般的です。 「Access-Control-Allow-Origin」ヘッダー。この場合、サーバーがクライアントのオリジンからのリクエストを明示的に許可していないため、リクエストは拒否されています。

この問題を解決するには、「flask-cors」パッケージを使用して Flask アプリケーションで CORS を有効にします。方法は次のとおりです:

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

    <code class="bash">pip install -U flask-cors</code>
    ログイン後にコピー
  2. Flask をインポートします- CORS モジュール

    <code class="python">from flask_cors import CORS, cross_origin</code>
    ログイン後にコピー
  3. CORS の構成

    <code class="python">app = Flask(__name__)
    cors = CORS(app)
    app.config['CORS_HEADERS'] = 'Content-Type'</code>
    ログイン後にコピー
  4. CORS 有効ルートの装飾

    <code class="python">@app.route("/")
    @cross_origin()
    def helloWorld():
      return "Hello, cross-origin-world!"</code>
    ログイン後にコピー

特定のケースでは、次のようにコードを変更できます:

クライアント コード:

<code class="javascript">// Only change the crossDomain option to false
$.ajax({
  type: 'POST',
  url: 'http://...',
  data: "name=3&amp;email=3&amp;phone=3&amp;description=3",
  crossDomain: false,
  success: function(msg) {
      alert(msg);
  }
});</code>
ログイン後にコピー

サーバー コード:

<code class="python">from flask import Flask, request
from flask.ext.mandrill import Mandrill
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app)</code>
ログイン後にコピー

注: クロスドメイン リクエストを防ぐために、JavaScript コードで CrossDomain オプションを false に変更してください。 。また、サーバー設定で指定されたオリジン (http://...) からのリクエストが許可されていることを確認してください。

以上がFlask アプリケーションの CORS 問題を解決する方法: なぜ「Access-Control-Allow-Origin」ヘッダーが必要なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート