Maison > interface Web > js tutoriel > Pourquoi est-ce que je reçois une erreur « Aucun en-tête 'Access-Control-Allow-Origin' présent » lorsque j'effectue des requêtes d'origine croisée ?

Pourquoi est-ce que je reçois une erreur « Aucun en-tête 'Access-Control-Allow-Origin' présent » lorsque j'effectue des requêtes d'origine croisée ?

DDD
Libérer: 2024-12-28 09:43:17
original
999 Les gens l'ont consulté

Why Am I Getting a

"Aucun en-tête 'Access-Control-Allow-Origin' présent" lors de la récupération de données avec JavaScript

Partage de ressources entre origines croisées (CORS ) est un mécanisme qui permet aux navigateurs Web d'effectuer des requêtes vers d'autres domaines, répondant ainsi aux problèmes de sécurité posés par différentes origines. Pour activer CORS, les serveurs doivent inclure des en-têtes spécifiques dans leurs réponses, tels que « Access-Control-Allow-Origin ».

1. Utilisation d'un proxy CORS

Si votre serveur ne dispose pas des en-têtes nécessaires, vous pouvez implémenter un proxy CORS entre votre client et votre serveur. Ce proxy, tel que CORS Anywhere, peut réécrire les réponses pour inclure les en-têtes manquants, permettant ainsi les requêtes d'origine croisée.

2. Éviter le contrôle en amont CORS

Les requêtes de contrôle en amont CORS sont des requêtes OPTIONS envoyées par les navigateurs pour déterminer si le serveur autorise les requêtes d'origine croisée. Pour éviter de déclencher un contrôle en amont, assurez-vous que vos demandes :

  • Ne pas utiliser d'informations d'identification (en-tête Authorization).
  • Utilisez les types de médias acceptés par le serveur sans en-têtes Content-Type personnalisés (par exemple, application /x-www-form-urlencoded).

3. Correction de l'en-tête Wildcard Access-Control-Allow-Origin

Les navigateurs rejettent les réponses avec un en-tête générique (*) Access-Control-Allow-Origin pour les demandes avec informations d'identification. Au lieu de cela, la valeur de l’en-tête doit correspondre à l’origine du client demandeur. Pour résoudre ce problème :

  • Configurez votre serveur pour qu'il fasse écho à l'en-tête de requête Origin dans l'en-tête de réponse Access-Control-Allow-Origin.
  • Évitez le plug-in Chrome CORS, qui peut provoquer des erreurs. positifs.

4. En-têtes dans Request vs. Response

Supprimez les lignes du code JavaScript (headers.append(...)) qui définissent les en-têtes Access-Control-Allow-*. Ce sont des en-têtes de réponse qui ne doivent pas être inclus dans les requêtes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal