Bagaimana cara mengatur tajuk Akses-Kontrol-Bolehkan-Asal agar saya dapat menggunakan font web dari subdomain saya di domain utama saya?
Catatan:
Anda akan menemukan contoh ini dan header lain untuk sebagian besar server HTTP di proyek Konfigurasi Server HTML5BP https://github.com/h5bp/server-configs
Jawaban:
Nginx harus dikompilasi dengan http://wiki.nginx.org/NginxHttpHeadersModule (default pada Ubuntu dan beberapa distro Linux lainnya). Maka Anda bisa melakukan ini
sumber
Jawaban yang lebih terkini:
sumber: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
Anda juga dapat menambahkan
Access-Control-Expose-Headers
(dalam format yang sama dengan Header Akses-Kontrol-Bolehkan) untuk mengekspos header kustom Anda dan / atau 'tidak sederhana' ke permintaan ajax.- http://www.html5rocks.com/en/tutorials/cors/
Konfigurasi untuk server web lain http://enable-cors.org/server.html
sumber
if
di nginx - bahkan manual resmi tidak menyarankannya .always
opsi ke semuaadd_header
sehingga tajuk ditambahkan juga untuk respons non-200. Sejak nginx 1.7.5: nginx.org/en/docs/http/ngx_http_headers_module.htmlInilah artikel yang saya tulis yang menghindari beberapa duplikasi untuk GET | POST. Seharusnya Anda menggunakan CORS di Nginx.
kontrol akses nginx memungkinkan asal
Berikut cuplikan sampel dari pos:
sumber
204 No content
karena tampaknya lebih sesuai.Pertama, izinkan saya mengatakan bahwa jawaban @hellvinz bekerja untuk saya:
Namun, saya telah memutuskan untuk menjawab pertanyaan ini dengan jawaban yang terpisah karena saya hanya berhasil membuat solusi ini berfungsi setelah menghabiskan sekitar sepuluh jam lagi mencari solusi.
Tampaknya Nginx tidak mendefinisikan jenis font MIME (benar) secara default. Dengan mengikuti pelajaran ini saya menemukan saya dapat menambahkan yang berikut:
Ke
etc/nginx/mime.types
file saya . Sebagaimana dinyatakan, solusi di atas kemudian bekerja.sumber
Arahan add_header tradisional Nginx tidak bekerja dengan respons 4xx. Karena kami masih ingin menambahkan custom header ke dalamnya, kami perlu menginstal modul ngx_headers_more untuk dapat menggunakan direktif more_set_headers, yang juga berfungsi dengan respons 4xx.
Kemudian gunakan more_set_headers dalam file nginx.conf, saya telah menempelkan sampel saya di bawah ini
sumber
Dalam beberapa kasus, Anda perlu menggunakan
add_header
arahan denganalways
untuk mencakup semua kode respons HTTP.Dari dokumentasi :
sumber
Dalam kasus saya, menggunakan Rails 5, satu-satunya solusi yang berhasil adalah menambahkan
rack-cors
permata. Seperti itu:di / Gemfile
di config / initializers / cors.rb
sumber: https://til.hashrocket.com/posts/4d7f12b213-rails-5-api-and-cors
sumber