Avec le développement rapide de la technologie front-end, de plus en plus de sites Web adoptent une architecture de séparation front-end et back-end utilisent AJAX ou FETCH pour communiquer afin d'améliorer l'expérience utilisateur. Cependant, sous cette architecture, nous rencontrons souvent des problèmes inter-domaines, nous devons donc utiliser certains plug-ins pour résoudre ce problème. Parmi eux, Django-cors-headers est un très bon choix. Il peut résoudre les problèmes inter-domaines de manière très pratique et est simple et facile à utiliser.
1. Qu'est-ce que le cross-domain ?
Dans le développement Web, le partage de ressources d'origine croisée fait référence au problème selon lequel lorsque le navigateur envoie une requête AJAX, le nom de domaine demandé est différent du nom de domaine de la page actuelle, ce qui entraîne le rejet de la requête. Ceci est conçu pour améliorer la sécurité du navigateur.
2. Que sont les en-têtes Django-Cors ?
django-cors-headers est une application Django qui gère les problèmes inter-domaines entre les pages Web backend et frontend de Django. Il peut facilement résoudre les problèmes de requêtes AJAX entre différents noms de domaine, offrant ainsi une meilleure expérience utilisateur.
3. Installez Django-cors-headers
Pour utiliser Django-cors-headers, vous devez d'abord vous assurer que vous avez installé et activé Django. Ensuite, vous pouvez installer Django-cors-headers via pip :
pip install django-cors-headers
Une fois l'installation terminée, vous devez le configurer dans le fichier settings.py de Django. Ajoutez :
INSTALLED_APPS = [ # ... 'corsheaders', # ... ]
à INSTALLED_APPS puis ajoutez :
MIDDLEWARE = [ # ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # ... ]
à MIDDLEWARE. Enfin, ajoutez :
CORS_ORIGIN_ALLOW_ALL = True
au bas de settings.py. Ceci termine l'installation et la configuration des en-têtes django-cors. Remarque : Dans un environnement de production, une autorisation spécifique au domaine doit être utilisée au lieu d'autoriser n'importe quelle origine.
4. Utilisez Django-cors-headers
Après avoir installé et configuré Django-cors-headers, nous pouvons l'utiliser dans la vue Django pour résoudre des problèmes inter-domaines. Par exemple, nous pouvons ajouter @csrf_exempt et @require_http_methods(['POST']) à la fonction d'affichage, et ajouter le code suivant au résultat de retour :
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
Après cette configuration, il n'apparaîtra pas lors de l'utilisation de requêtes AJAX ou FETCH C'est un problème inter-domaines.
5. Résumé
Pour les applications Web qui utilisent AJAX ou FETCH pour la séparation front-end et back-end, les problèmes inter-domaines sont un problème qui doit être résolu. django-cors-headers est un très bon choix, il peut facilement résoudre des problèmes inter-domaines et fournit de nombreuses options de configuration qui peuvent être utilisées en fonction de la situation réelle. Avec l'ajout des en-têtes Django-cors, nous pouvons développer plus facilement de superbes applications Web et offrir une meilleure expérience.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!