フロントエンド テクノロジーの急速な発展に伴い、ユーザー エクスペリエンスを向上させるために、フロントエンドとバックエンドの分離アーキテクチャを採用する Web サイトが増えています。フロントエンドとバックエンドは AJAX または FETCH を使用して通信します。ただし、このアーキテクチャではクロスドメインの問題が頻繁に発生するため、この問題を解決するにはいくつかのプラグインを使用する必要があります。中でも、Django-cors-headers は非常に優れた選択肢であり、クロスドメインの問題を非常に便利に解決でき、シンプルで使いやすいです。
1.クロスドメインとは何ですか?
Web 開発におけるクロスオリジン リソース共有 (Cross-Origin Resource Sharing) とは、ブラウザが AJAX リクエストを送信するときに、リクエストされたドメイン名が現在のページのドメイン名と異なるという問題を指します。リクエストが拒否される原因となります。これはブラウザのセキュリティを強化するために設計されています。
2. django-cors-headers とは何ですか?
django-cors-headers は、Django バックエンド Web ページとフロントエンド Web ページ間のクロスドメインの問題を処理する Django アプリケーションです。異なるドメイン名間の AJAX リクエストの問題を簡単に解決できるため、ユーザー エクスペリエンスが向上します。
3. django-cors-headers をインストールする
django-cors-headers を使用するには、まず Django がインストールされ有効になっていることを確認する必要があります。次に、pip を介して django-cors-headers をインストールできます。
pip install django-cors-headers
インストールが完了したら、Django の settings.py ファイルで設定する必要があります。 INSTALLED_APPS を追加します:
INSTALLED_APPS = [ # ... 'corsheaders', # ... ]
次に、MIDDLEWARE を追加します:
MIDDLEWARE = [ # ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # ... ]
最後に、settings.py の最後に追加します:
CORS_ORIGIN_ALLOW_ALL = True
これで django-cors- インストールと設定は完了ですヘッダーの。注: 運用環境では、オリジンを許可するのではなく、ドメイン固有の認証を使用する必要があります。
4. django-cors-headers を使用する
django-cors-headers をインストールして構成した後、Django ビューでそれを使用して、クロスドメインの問題を解決できます。たとえば、@csrf_exempt と @require_http_methods(['POST']) を view 関数に追加し、戻り結果に次のコードを追加できます:
from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_http_methods from corsheaders.decorators import cors_exempt @csrf_exempt @require_http_methods(['POST']) @cors_exempt def your_view(request): data = {'result': 'success'} response = JsonResponse(data) response['Access-Control-Allow-Origin'] = '*' response['Access-Control-Allow-Methods'] = 'POST, OPTIONS' response['Access-Control-Allow-Headers'] = 'Accept, Content-Type, Authorization' response['Access-Control-Max-Age'] = '86400' return response
この構成の後、AJAX または FETCH リクエストを使用する場合クロスドメインの問題は発生しません。
5. 概要
AJAX または FETCH を使用してフロントエンドとバックエンドを分離する Web アプリケーションの場合、クロスドメインの問題は解決する必要があります。 django-cors-headers は非常に良い選択であり、クロスドメインの問題を簡単に解決でき、実際の状況に応じて使用できる多くの構成オプションを提供します。 django-cors-headers を追加すると、優れた Web アプリケーションをより簡単に開発し、より良いエクスペリエンスを提供できるようになります。
以上がPython サーバー プログラミング: django-cors-headers を使用してクロスドメインの問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。