"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 :
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 :
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!