"Aucun en-tête 'Access-Control-Allow-Origin' présent dans la réponse de l'API"
Proxy CORS pour la résolution des problèmes d'en-tête
Si vous manquez de contrôle sur le serveur, vous pouvez contourner le défaut d'en-tête en utilisant un proxy CORS. Une option facilement déployable est cors-anywhere (https://github.com/Rob--W/cors-anywhere), qui peut être configurée avec quelques commandes. Ce proxy ajoute l'en-tête Access-Control-Allow-Origin nécessaire aux réponses.
Éviter le contrôle en amont CORS
Le code en question déclenche un contrôle en amont CORS en raison de l'en-tête Authorization . De plus, Content-Type: application/json peut également provoquer un contrôle en amont. Pour éviter cela, il faut modifier le serveur pour répondre de manière appropriée à la requête OPTIONS de contrôle en amont avec les en-têtes nécessaires. Alternativement, il peut être envisagé de concevoir la requête pour éviter ces déclencheurs (par exemple, en utilisant des en-têtes différents ou du JSON intégré).
Problème "Wildcard" Access-Control-Allow-Origin
Pour les réponses avec informations d'identification, la valeur de l'en-tête Access-Control-Allow-Origin ne peut pas être « * ». Il doit correspondre précisément à l'origine du code frontend, tel que « http://127.0.0.1:3000 ». La configuration du serveur peut être ajustée pour refléter automatiquement la valeur d'origine dans l'en-tête.
Suppression des en-têtes de requête inutiles
Supprimez ces lignes du code JavaScript car elles représentent les en-têtes de réponse et ne doit pas être inclus dans les demandes :
headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true');
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!