Comment définir l'en-tête Access-Control-Allow-Origin pour pouvoir utiliser les polices Web de mon sous-domaine sur mon domaine principal?
Remarques:
Vous trouverez des exemples de cela et d'autres en-têtes pour la plupart des serveurs HTTP dans les projets HTML5BP Server Configs https://github.com/h5bp/server-configs
Réponses:
Nginx doit être compilé avec http://wiki.nginx.org/NginxHttpHeadersModule (par défaut sur Ubuntu et certaines autres distributions Linux). Alors tu peux faire ça
la source
Une réponse plus à jour:
source: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
Vous pouvez également souhaiter ajouter
Access-Control-Expose-Headers
(au même format que les en-têtes Access-Control-Allow-Allow) afin d'exposer vos en-têtes personnalisés et / ou "non simples" aux demandes ajax.- http://www.html5rocks.com/en/tutorials/cors/
Configurations pour d'autres serveurs Web http://enable-cors.org/server.html
la source
if
in nginx - même le manuel officiel le décourage .always
option à tousadd_header
afin que les en-têtes soient ajoutés également pour les réponses autres que 200. Depuis nginx 1.7.5: nginx.org/en/docs/http/ngx_http_headers_module.htmlVoici l'article que j'ai écrit et qui évite une partie de la duplication pour GET | POST. Cela devrait vous aider avec CORS à Nginx.
Le contrôle d'accès nginx autorise l'origine
Voici l'extrait extrait du message:
la source
204 No content
car cela semble plus approprié.Tout d’abord, laissez-moi vous dire que @hellvinz answer travaille pour moi:
Cependant, j'ai décidé de répondre à cette question par une réponse distincte, car je n'ai réussi à faire fonctionner cette solution qu'après une dizaine d'heures supplémentaires à la recherche d'une solution.
Il semble que Nginx ne définisse aucun type (correct) MIME de police par défaut. En suivant ce monument, j'ai trouvé que je pouvais ajouter ce qui suit:
À mon
etc/nginx/mime.types
dossier. Comme indiqué, la solution ci-dessus a ensuite fonctionné.la source
La directive add_header traditionnelle de Nginx ne fonctionne pas avec les réponses 4xx. Comme nous voulons toujours leur ajouter des en-têtes personnalisés, nous devons installer le module ngx_headers_more pour pouvoir utiliser la directive more_set_headers, qui fonctionne également avec les réponses 4xx.
Ensuite, utilisez more_set_headers dans le fichier nginx.conf, j'ai collé mon échantillon ci-dessous
la source
Dans certains cas, vous devez utiliser des
add_header
directives avecalways
pour couvrir tous les codes de réponse HTTP.De la documentation :
la source
Dans mon cas, avec Rails 5, la seule solution efficace a été d’ajouter la
rack-cors
gemme. Ainsi:dans / Gemfile
dans config / initializers / cors.rb
source: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
la source