Eh bien, oui, nginx combine les en-têtes portant le même nom .. mais il le fait conformément à la spécification HTTP. Voir section 4.2 .
L'en-tête:
Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com
Est, selon la spécification HTTP / 1.1, fonctionnellement équivalent à:
Access-Control-Allow-Origin: http://dev.anuary.com
Access-Control-Allow-Origin: https://dev.anuary.com
Si vous avez un système ou une application capable de lire un format et non l'autre, c'est le problème. nginx le fait bien.
MODIFIER :
La documentation de Mozilla indique qu'il ne peut y avoir qu'un seul en- Access-Control-Allow-Origin
tête.
Le formatage de celui-ci ( voir ici ) devrait être une liste d'origines délimitée par des espaces:
add_header Access-Control-Allow-Origin "http://dev.anuary.com https://dev.anuary.com";
Mais vraiment, vous êtes censé faire écho à l'en- Origin
tête fourni par le client au lieu d'en générer un à l'improviste. C'est probablement plus approprié:
if ($http_origin ~* "^https?://dev\.anuary\.com$" ) {
add_header Access-Control-Allow-Origin $http_origin;
}
http://example.com
ethttp://localhost:3000
)?Consultez cet article pour configurer votre nginx CORS avec des domaines dynamiques: https://qa.lsproc.com/post/access-control-allow-origin-multiple-origin-domains
la source
J'étais confronté au même problème que plusieurs sous-domaines de mon réseau essayant d'accéder aux ressources et
nginx
n'était pas configuré correctement. Voici comment je l'ai corrigé.J'espère que ça aide.
la source