ブラウザ同一生成元ポリシーDRFプロジェクトの問題を解決

DRFプロジェクトは、分離の終わりには、Webフロントフレームです。

このプロジェクトでは、我々はVUEのフロントエンドフレームワークを使用していました。

独立したフロントと問題が発生した後端部、後端部のフロントエンドにAjaxリクエストは、API(Interface)を要求することはできません。

なぜ、このような問題があるのでしょうか?

ブラウザのため、同一生成元ポリシーをせずにさまざまなソース(ウェブサイトのコードアヤックス)用のスクリプトを許可していない明示的な承認、お互いのリソースを読み書きするために、状況下で。

同一生成元ポリシーに述べたように、我々は一度にあるかを理解する必要性を避けることができないソースとも呼ばれているものの相同元ポリシーを

出典:urlは、プロトコル、ドメイン名、ポート番号を意味し;

相同:URLの2つのプロトコル、ドメイン名、ポート番号は、その後、我々は、このURLは2つの相同で呼び出し、同じです。

同一生成元ポリシーは:ブラウザのセキュリティ機能を指し、その役割は二つの非相同URLが通信を防ぐようにすることです。

今、私たちは問題を特定した後、我々は問題を解決するために開始されます。

ここでは、通信するために非相同の間でクロスドメインのURLを達成するために使用する必要があります。

私たちは、クロスドメインのアプローチがある使用クロスドメインリソース共有CORS(クロスオリジンリソースの共有)

今、私たちは、この問題を解決する方法は、その後、我々が達成するために、コードを使用する必要がありますことを知っています。

まず、私たちは、DjangoのプログラムCORS構成で、サードパーティ製のモジュールをインストールする必要があります。

ピップジャンゴ・CORS-ヘッダをインストール

その後、我々は、configureにコンフィギュレーションファイルを投影する必要があります。

= INSTALLED_APPS [ 
    ... 

    登録CORSクロスドメインアクセスサブアプリケーション
    ' corsheaders ' 

]
ミドルウェア= [
     ' corsheaders.middleware.CorsMiddleware ' 
    ... 
]

ここで、必要な設定要求ホワイトリスト。

CORS 
CORS_ORIGIN_WHITELIST = ' http://127.0.0.1:8080 ' ' HTTP:// localhostを:8080 ' ' http://www.meiduo.site:8080 ' " HTTP://www.meiduo。サイト:8000 " 
CORS_ALLOW_CREDENTIALS = Trueの   許可クッキー

我々は上記の操作を完了すると、我々は、同一生成元ポリシーの問題ブラウザの友人を取り除きます。

おすすめ

転載: www.cnblogs.com/chao666/p/12300056.html