Une histoire sur la façon de traiter le problème CORS

Cela fait longtemps que j'ai commencé à lier les programmes frontaux et côté serveur comme Rest. Je suis venu ici et j'ai fait beaucoup de pokamis, donc pour rappel.

Demandez au front de créer une API factice qui ne renvoie qu'une valeur fixe json et de poursuivre l'implémentation Le backend est implémenté pour prod afin que le mannequin soit dynamique, et finalement remplacé par le mannequin Je produis dans un flux comme celui-ci.

Donc, le backend utilise php, mais après beaucoup de désordre

test.php


Je vais faire diverses choses ~
header('Content-Type: application/json');
echo $json;
exit;

C'est la théorie de sortir json comme. Le front exécute test.php en tant que point de terminaison avec js. CORS est presque toujours un problème.

Du côté Apache, penser qu'il faut considérer les risques de sécurité les uns après les autres

Header set Access-Control-Allow-Origin *

L'accès est OK !! depuis tous les domaines dans l'en-tête de réponse. Donc, c'était mal de l'oublier complètement et de l'écrire en php.

header('Content-Type: application/json');
header('Access-Control-Allow-Origin *');
echo $json;
exit;
Access to XMLHttpRequest at 'https://xxxxx.jp/api/test' from origin 
'null' has been blocked by CORS policy: 
The 'Access-Control-Allow-Origin' header contains multiple values '*, *', 
but only one is allowed.

Je me demandais si Origin aurait dû être défini simplement en regardant le début du message d'erreur. Si vous regardez attentivement, c'était une erreur car plusieurs en-têtes Access-Control-Allow-Origin ont été définis.

Soit effacez-le et résolvez-le, mais dans ce cas, php est meilleur. Je sais, mais j'ai plus peur des erreurs dans les modèles que je ne remarque pas.

**fin. ** **

Recommended Posts

Une histoire sur la façon de traiter le problème CORS
Comment créer un sous-menu avec le plug-in [Blender]
L'histoire de la gestion de theano avec TSUBAME 2.0
[AWS] Comment gérer Wordpress "La réponse n'est pas la bonne réponse JSON"
[systemd] Comment faire face au problème que fancontrol ne fonctionne pas après la suspension
Une histoire sur la façon de spécifier un chemin relatif en python.
Une histoire sur la façon dont les utilisateurs de Windows 10 ont créé un environnement pour utiliser OpenCV3 avec Python 3.5
Comment gérer les données déséquilibrées
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Trouver une solution au problème N-Queen avec un algorithme génétique (1)
Une histoire sur le portage du code de "Essayez de comprendre comment fonctionne Linux" sur Rust
[VLC] Comment gérer le problème de ne pas être au premier plan pendant la lecture
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
Comment faire une commande pour lire le fichier de paramètres avec pyramide
Je voulais résoudre le problème ABC164 A ~ D avec Python
Comment envoyer une requête à l'API DMM (FANZA) avec python
Comment ajouter un package avec PyCharm
Comment résoudre le problème d'emballage du bac
Comment gérer les erreurs de compatibilité d'énumération
Comment lire les données de problème avec Paiza
Comment gérer le problème du déplacement du répertoire actuel lorsque Python est exécuté depuis Atom
Le 16ème problème d'écriture en temps réel hors ligne a été résolu avec Python
[Petite histoire] Comment enregistrer des graphiques matplotlib dans un lot avec Jupyter
[Python] Explique comment utiliser la fonction range avec un exemple concret
Le 16ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (théorie)
Comment réparer la population initiale avec un algorithme génétique utilisant DEAP
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
Le 19ème comment écrire un problème de référence en temps réel hors ligne à résoudre avec Python
Le 15e problème d'écriture en temps réel hors ligne a été résolu avec python
Comment gérer les fuites de mémoire dans matplotlib.pyplot
Comment calculer la volatilité d'une marque
Essayez de résoudre le problème du fizzbuzz avec Keras
Comment lire un fichier CSV avec Python 2/3
Comment partager un environnement virtuel [About requirements.txt]
Comment envoyer un message à LINE avec curl
Comment gérer les erreurs en frappant pip ②
Comment dessiner un graphique à 2 axes avec pyplot
Comment créer un dictionnaire avec une structure hiérarchique.
ne peut pas décaper. Comment gérer les objets Annoy
Comment essayer l'algorithme des amis d'amis avec pyfof
Comment gérer le module 'Sensorflow' n'a aucun attribut '
Comment résoudre le problème de l'échec de la construction lorsque CI / CD de Python Function avec AWS Amplify
Une histoire sur l'implémentation d'un écran de connexion avec django
Enregistrer l'objet dans un fichier avec pickle
Procédure de création d'application multi-plateforme avec kivy
Comment entraîner Kaldi avec JUST Corpus
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (code Python)
Comment publier un blog sur Amazon S3 avec le moteur de blog statique `` Pélican '' pour Pythonista
Essayez de résoudre le problème du voyageur de commerce avec un algorithme génétique (résultat de l'exécution)
Comment gérer l'incapacité d'ouvrir le fichier de verrouillage / var / lib / dpkg / lock-frontend
[Note] Une histoire sur l'impossibilité de percer le proxy avec pip
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
[Python] Comment gérer l'erreur d'instance is "is instance () arg 2 doit être un type ou un tuple de types"
Comment gérer "^ [[A ^ [[B ^ [[C ^ [[D"]] en appuyant sur la touche de direction lors de l'exécution de python sur mac
Lire la source Python-Markdown: Comment créer un analyseur
Comment convertir / restaurer une chaîne avec [] en python