NGINX add_header, birden çok başlık ekleyerek


21

Birden çok başlık göndermeye çalışıyorum

add_header Access-Control-Allow-Origin http://dev.anuary.com;
add_header Access-Control-Allow-Origin https://dev.anuary.com;

Ancak bunun yerine NGINX onları

Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com

Çözüm nedir?

Yanıtlar:


28

Evet, nginx aynı adlı başlıkları birleştiriyor .. ama HTTP özelliğine göre yapıyor. Bkz. Bölüm 4.2 .

Başlık:

Access-Control-Allow-Origin: http://dev.anuary.com, https://dev.anuary.com

HTTP / 1.1 spesifikasyonuna göre fonksiyonel olarak şuna eşittir:

Access-Control-Allow-Origin: http://dev.anuary.com
Access-Control-Allow-Origin: https://dev.anuary.com

Bir biçimi değil diğerini okuyabilen bir sisteminiz veya uygulamanız varsa, sorun budur. nginx doğru yapıyor.


DÜZENLE :

Mozilla belgeleri tek olamayacağını bildiren Access-Control-Allow-Originbaşlık.

Biçimlendirmesi ( buraya bakın ), alanla sınırlı bir orijin listesi olmalıdır:

add_header Access-Control-Allow-Origin "http://dev.anuary.com https://dev.anuary.com";

Ama gerçekten, maviden bir tane oluşturmak yerine müşteri tarafından sağlanan başlığı yankılamanız gerekiyorOrigin . Bu muhtemelen daha uygundur:

if ($http_origin ~* "^https?://dev\.anuary\.com$" ) {
    add_header Access-Control-Allow-Origin $http_origin;
}

İkincisi, FireFox 9 veya başka bir sürümde çalışmaz. Bu bir sorun.
Ocak'ta Gajus

1
@Ayla almamalı. Bkz. Düzenleme.
Shane Madden

NOT: Verilen çözüm sizin için işe yaramıyorsa, bunu ve bunu okuyun . Bu aydınlatıcıdır ve çalışma nedenini bulabilirsiniz.
its_me

Access-Control-Allow-Origin değeri regexp olabilir mi?
haxpanel

Örneğinizi birden çok kökene genişletmeyi düşünür müsünüz ? (Ör. http://example.comVe http://localhost:3000)
Augustin Riedinger


-1

Ağımdaki kaynaklara erişmeye çalışan birden çok alt etki alanıyla aynı sorunla karşı karşıya kaldım ve nginxdüzgün kurulmadı. İşte böyle düzelttim.

add_header Access-Control-Allow-Origin https://*.your-domain-name.com;

Umarım bu yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.