NGINX add_header, कई हेडर जोड़ रहा है


21

मैं कई हेडर भेजने की कोशिश कर रहा हूं

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

हालाँकि, इसके बजाय NGINX उन्हें बनाता है

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

इसका क्या उपाय है?

जवाबों:


28

ठीक है, हाँ, nginx समान रूप से नामित हेडर के संयोजन है .. लेकिन यह HTTP कल्पना के अनुसार कर रहा है। अनुभाग 4.2 देखें

हेडर:

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

HTTP / 1.1 युक्ति के अनुसार, कार्यात्मक रूप से इसके बराबर है:

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

यदि आपके पास एक सिस्टम या एप्लिकेशन है जो एक प्रारूप को पढ़ने में सक्षम है और दूसरे को नहीं, तो यह समस्या है। nginx इसे सही कर रहा है।


संपादित करें :

मोज़िला प्रलेखन कहा गया है कि वहाँ केवल एक ही हो सकता है Access-Control-Allow-Originहैडर।

इसका प्रारूपण ( यहां देखें ) मूल की एक अंतरिक्ष-सीमांकित सूची होनी चाहिए:

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

लेकिन वास्तव में, आप कर रहे हैं होना चाहिए गूंज Originहैडर बजाय एक नीले रंग से बाहर पैदा करने में ग्राहक द्वारा आपूर्ति की। यह शायद अधिक उपयुक्त है:

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

खैर, बाद वाले फायरफॉक्स 9 या किसी अन्य संस्करण में काम नहीं करता है। जो एक मुद्दा है।
गजस

1
@ गुय न तो चाहिए। संपादित देखें।
शेन झुंझलाना

नोट: यदि दिए गए समाधान आपके लिए काम नहीं करते हैं, तो इसे और इसे पढ़ें । यह ज्ञानवर्धक है, और आपको यह काम नहीं करने का कारण मिल सकता है।
its_me

क्या Access-Control-Allow-Origin का मूल्य regexp हो सकता है?
हैक्सपेल

क्या आप अपने उदाहरण को कई मूल (जैसे ) http://example.comऔर http://localhost:3000? तक बढ़ाएंगे ?
ऑगस्टिन रिडिंगर


-1

मैं अपने नेटवर्क में एकाधिक उप डोमेन के रूप में एक ही समस्या का सामना कर रहा था जो संसाधनों तक पहुंचने की कोशिश कर रहा nginxथा और ठीक से सेटअप नहीं था। यहां बताया गया है कि मैंने इसे कैसे तय किया।

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

आशा है कि ये आपकी मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.