Comment configurer correctement nginx Access-Control-Allow-Origin dans l'en-tête de réponse basé sur l'en-tête Origin de la requête?
Je suis à la recherche d'une config nginx installation qui n'installation de la Access-Control-Allow-Origin
à la valeur reçue dans le Origin
.
Il semble que la *
méthode ne fonctionne pas avec Chrome et de la multiplicité des Url ne fonctionne pas avec Firefox comme il n'est pas permis par la SCRO spécification.
Jusqu'à présent, la seule solution est l'installation de la Access-Control-Allow-Origin
à la valeur reçues dans l'origine (oui la validation de certains pourraient être mises en œuvre).
La question est de savoir comment faire cela dans nginx, de préférence sans installer d'autres extensions.
set $allow_origin "https://example.com"
# instead I want to get the value from Origin request header
add_header 'Access-Control-Allow-Origin' $allow_origin;
source d'informationauteur sorin
Vous devez vous connecter pour publier un commentaire.
À l'aide de
if
peut parfois briser les autres config commetry_files
. Vous pouvez vous retrouver avec une erreur 404.L'utilisation de la carte à la place
Si c'est le mal
J'utilise moi-même, et c'est la ligne dans mon Nginx configuration:
Ce jeux, un en-tête pour permettre à l'origine de la demande comme le seul autorisé origine. Alors, où jamais vous venez, est le seul endroit autorisé. Donc il ne devrait pas être très différent que de permettre à "*", mais il semble plus spécifiques à partir du navigateur.
En outre, vous pouvez utiliser la logique conditionnelle dans votre Nginx config pour spécifier une liste de noms d'hôtes. Voici un exemple de https://gist.github.com/Ry4an/6195025
J'ai l'intention d'essayer cette technique dans mon propre serveur à la liste blanche, le permis de domaines.