同一生成元ポリシーの終了前と後の問題を解決するために、Djangoのミドルウェア

問題の説明

それは前の、適切な角度分離と後端であるので、我々は、スプリッタの前端と後端をシミュレートするために、簡単なライブラリ管理システムを作ったので、角度を使用してウェブサイトを開発する会社では、フロントエンドの時間、。

しかし、クロスドメインの元ポリシーの問題を満たすために開発プロセスでは、ページを表示することができますが、何のデータを以下に示していません

次のように右のチェックが与えられました:

コードは以下のとおりであります

http://127.0.0.1:8888/publisher/の読み込みに失敗しました:
いいえ「アクセス制御-許可-起源」ヘッダは、要求されたリソース上に存在します。
起源'のhttp:// localhostを:4200'のため、アクセスが許可されていません。

 

次のように角度データは、コードの後端から取得されます。

プライベートpublishersUrl = 'http://127.0.0.1:8888/publisher/'; 
プライベートaddpubUrl = 'http://127.0.0.1:8888/addpub/'; 


getPublishers():観測< Publisherは[] > { 
    this.http.get戻り< 出版社[] > (this.publishersUrl)
    .pipe(
      catchError(this.handleError < 出版社[] > ( 'getPublishers'、[])) ; 
}

問題の原因

興味を持っているこの問題について詳細にここで説明されていないクロスドメイン由来の政策課題は、検索するために行くことができるため、この問題が発生します。

 

問題解決

キーは、後端この問題を解決するために、他のサイトへのアクセスを許可するために、我々はこの問題を解決するためのミドルウェアを定義することができる場所は、次のステップです。

1. myMiddleware.pyアプリで新しいファイルを作成します。

2.ファイルに次のコードを追加します。

django.utils.deprecation 輸入MiddlewareMixinの


クラスMyCore(MiddlewareMixin):
     デフprocess_response(自己、要求、応答):
        応答[ ' アクセス制御-許可-起源' ] = " * " 
        であれば request.method == " OPTIONS " 复杂请求预检 
            応答[ ' アクセス制御-許可-ヘッダ' ] = " Content-Typeの" 
            応答[ ' アクセス制御-メソッド許可' =]" POSTは、PUT、DELETE " 
        を返す応答を

3.設定ファイルに登録ミドルウェアに行きます

ミドルウェア= [
     ' BMS.myMiddleware.MyCore ' 
]

 

したがって、問題が解決されたとしても、我々はプロジェクト起動し、実行の結果を見ていきます

 

おすすめ

転載: www.cnblogs.com/yifchan/p/python-1-32.html