Wie setze ich den Access-Control-Allow-Origin-Header, damit ich Web-Fonts aus meiner Subdomain in meiner Hauptdomain verwenden kann?
Anmerkungen:
Beispiele für diese und andere Header für die meisten HTTP-Server finden Sie in den HTML5BP-Serverkonfigurationsprojekten unter https://github.com/h5bp/server-configs
Antworten:
Nginx muss mit http://wiki.nginx.org/NginxHttpHeadersModule kompiliert werden (Standard unter Ubuntu und einigen anderen Linux-Distributionen). Dann kannst du das machen
quelle
Eine aktuellere Antwort:
Quelle: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
Möglicherweise möchten Sie auch
Access-Control-Expose-Headers
(im selben Format wie Access-Control-Allow-Headers) hinzufügen , um Ihre benutzerdefinierten und / oder "nicht einfachen" Header Ajax-Anforderungen auszusetzen.- http://www.html5rocks.com/de/tutorials/cors/
Konfigurationen für andere Webserver http://enable-cors.org/server.html
quelle
if
in Nginx - auch das offizielle Handbuch rät davon ab .always
, allen Optionen eine Option hinzuzufügen ,add_header
damit Header auch für Nicht-200-Antworten hinzugefügt werden. Seit nginx 1.7.5: nginx.org/en/docs/http/ngx_http_headers_module.htmlHier ist der Artikel, den ich geschrieben habe, in dem Duplikate für GET | POST vermieden werden. Es sollte Sie mit CORS in Nginx in Schwung bringen.
Nginx-Zugriffskontrolle erlauben Herkunft
Hier ist das Beispiel aus dem Beitrag:
quelle
204 No content
da dies angemessener erscheint.Lassen Sie mich zunächst sagen, dass die Antwort von @hellvinz für mich funktioniert:
Ich habe mich jedoch entschlossen, diese Frage mit einer separaten Antwort zu beantworten, da ich diese Lösung erst dann zum Laufen gebracht habe, nachdem ich nach einer Lösung gesucht hatte.
Es scheint, dass Nginx standardmäßig keine (korrekten) Schriftart-MIME-Typen definiert. Durch Anschluss an diese tuorial fand ich mich folgende hinzufügen könnte:
Zu meiner
etc/nginx/mime.types
Akte. Wie gesagt, hat die obige Lösung dann funktioniert.quelle
Die traditionelle add_header-Direktive von Nginx funktioniert nicht mit 4xx-Antworten. Da wir ihnen weiterhin benutzerdefinierte Header hinzufügen möchten, müssen wir das Modul ngx_headers_more installieren, um die Anweisung more_set_headers verwenden zu können, die auch mit 4xx-Antworten funktioniert.
Dann benutze more_set_headers in der Datei nginx.conf, ich habe mein Beispiel unten eingefügt
quelle
In einigen Fällen müssen Sie
add_header
Anweisungen mit verwendenalways
, um alle HTTP-Antwortcodes abzudecken .Aus der Dokumentation :
quelle
In meinem Fall, mit Rails 5, war die einzige funktionierende Lösung das Hinzufügen des
rack-cors
Edelsteins. Wie so:in / Gemfile
in config / initializers / cors.rb
Quelle: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
quelle