2014-11-19 11 views
28

किसी कारण से फ़ॉन्ट्स ने मेरी साइटों पर प्रतिपादन करना बंद कर दिया है। फोंट साइट के समान सर्वर पर स्थानीय रूप से संग्रहीत होते हैं।मैं 'लापता क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) प्रतिक्रिया हेडर' वेबफॉन्ट मुद्दे को कैसे ठीक कर सकता हूं?

मैं इस समस्या को देखा और यह एक Missing Cross-Origin Resource Sharing (CORS) Response Header प्रतीत हो रहा है, लेकिन मैं इस बात के लिए समाधान नहीं समझ सकता।

सभी विभिन्न साइटों करने के लिए कहते हैं कि उपयोग करने के लिए है: Access-Control-Allow-Origin:*

लेकिन जैसा कि मैंने मुख्य रूप से सामने के छोर कर रहा हूँ मैं नहीं जानता कि जहां यह डाल करने के लिए। क्या यह मेरा होस्ट कुछ मदद कर सकता है?

समस्या को ठीक करने के लिए मैं क्या कर सकता हूं?

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

साइट सवाल में है: http://cyclistinsuranceaustralia.com.au/

फोन नंबर, उदाहरण के लिए, ऊपरी दाएँ भाग में बेबस फ़ॉन्ट होना चाहिए, लेकिन यह प्रभाव के लिए दोषी है।

मूल से 'http://www.cyclistinsuranceaustralia.com.au' क्रॉस-ओरिजिन रिसोर्स शेयरिंग नीति से लोड होने से अवरुद्ध कर दिया गया फ़ॉन्ट:

कंसोल में, मैं त्रुटियों के लिए 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति' शीर्षक है एक मान 'http://www.cyclistinsuranceaustralia.com.au' जो आपूर्ति की गई उत्पत्ति के बराबर नहीं है। उत्पत्ति 'http://cyclistinsuranceaustralia.com.au' इसलिए पहुंच की अनुमति नहीं है। मेरी .htaccess फ़ाइल में

Access-Control-Allow-Origin "http://www.cyclistinsuranceaustralia.com.au" 

लेकिन यह कोई बदलाव नहीं आया है:

मैं अपने मेजबान जो डाल करने के लिए कहा से संपर्क करें।

+1

मुझे लगता है कि अपने समाधान यहाँ है: +०१२३७६३७३९ http://stackoverflow.com/questions/1653308/access-control-allow-origin-multiple-origin-domains – Croises

+0

@Croises धन्यवाद लेकिन दुर्भाग्य है कि मुझे – MeltingDog

+0

को कोई मतलब नहीं है [इसे देखें] (http: //stackoverflow.com/q/15024333/440546) – undone

उत्तर

20

अपने HTML में आप एक "आधार" टैग की स्थापना की है:

<base href="http://www.cyclistinsuranceaustralia.com.au/"> 
  1. अपने HTML से उस लाइन को हटा दें, यदि आप इसे ज़रूरत नहीं है। http://cyclistinsuranceaustralia.com.au से देखे जाने पर इसे फ़ॉन्ट्स को काम करना चाहिए।
  2. आप शायद http://www.cyclistinsuranceaustralia.com.auhttp://cyclistinsuranceaustralia.com.au
+0

मैं <बेस टैग का उपयोग नहीं कर रहा हूं, भले ही यह त्रुटि देता है – Teekam

27

साइट रूट पर इस .htaccess फ़ाइल के साथ कि आप बस Access-Control-Allow-Origin:*

के उपयोग में रुचि रखते हैं आप कर सकते हैं।

Header set Access-Control-Allow-Origin "*" 

कुछ उपयोगी यहाँ जानकारी: http://enable-cors.org/server_apache.html

+0

क्या आपने यह कोशिश की थी। Htaccess? – Croises

+0

बहुत धन्यवाद, यह बहुत उपयोगी था ... – aidadev

+1

धन्यवाद! अच्छी तरह से काम। –

3

अपने विशेष मामले के अंक में गैर विहित यूआरएल (www.site.com बनाम site.com) से साइट तक पहुँचने के साथ होने लगते हैं।

सीओआरएस मुद्दे को ठीक करने के बजाय (जो सेवा प्रदाता के आधार पर उचित सीओआरएस हेडर के साथ सर्वर फोंट को प्रॉक्सी लिखने की आवश्यकता हो सकती है) आप अपने यूआरएल को सामान्य रूप से कैननिकल यूआरएल पर सर्वर सामग्री को सामान्य करने के लिए सामान्य कर सकते हैं और बिना किसी अनुरोध पृष्ठ को "www। "।

वैकल्पिक रूप से आप कि CORS हेडर कॉन्फ़िगर किया गया है करने के लिए जाना जाता है अलग सर्वर/CDN के लिए फोंट अपलोड कर सकते हैं या आप आसानी से ऐसा कर सकते हैं। और यह शायद HostGator या GoDaddy है कि -

5

मैं अपने मेजबान उपयोग कर रहा है सी-पैनल ग्रहण करने के लिए जा रहा हूँ। दोनों मामलों में वे सर्वर प्रशासन को जितना संभव हो सके उतने आसान उपयोगकर्ता बनाने के लिए सी-पैनल (वास्तव में, बहुत से होस्ट करते हैं) का उपयोग करते हैं। भले ही आप किसी और के माध्यम से होस्टिंग कर रहे हों - देखें कि क्या आप किसी प्रकार के व्यवस्थापक पैनल में लॉग इन कर सकते हैं और .htaccess फ़ाइल जिसे आप संपादित कर सकते हैं। (नोट: इससे पहले की अवधि का मतलब है कि यह एक "छिपी हुई" फ़ाइल/निर्देशिका है)।

  1. Header set Access-Control-Allow-Origin "*" बस अगर यह काम करता है देखने के लिए:

    एक बार जब आप htaccess फ़ाइल निम्नलिखित पंक्ति जोड़ पाते हैं। चेतावनी: एक निर्माण सर्वर

यह काम करना चाहिए पर इस लाइन का प्रयोग न करें। यदि नहीं, तो अपने होस्ट को कॉल करें और उनसे पूछें कि लाइन क्यों काम नहीं कर रही है - वे शायद वहां से आपकी मदद करने में सक्षम होंगे।

  1. एक बार जब आप ऊपर काम कर का अनुरोध डोमेन http://cyclistinsuranceaustralia.com.au/ का पता करने के लिए * बदलने की क्या ज़रूरत है। आपको कैनोलिक एड्रेसिंग (www सहित) के साथ कोई समस्या मिल सकती है और यदि ऐसा है तो आपको अपने होस्ट को रीडायरेक्ट के लिए कॉन्फ़िगर करने की आवश्यकता हो सकती है। यद्यपि पार करने के लिए यह एक अलग और छोटा पुल है। आप कम से कम सही जगह पर होंगे।
0

को हम अमेज़न (एडब्ल्यूएस) S3 presigned पोस्ट कुछ ब्राउज़रों पर विफल रहने के साथ इसी तरह के हैडर मुद्दा था रीडायरेक्ट करने के लिए की आवश्यकता होगी। https://stackoverflow.com/a/37465080/473040

0

हम fontawesome-webfont.woff2 एक साझा मेजबान पर एक 406 त्रुटि फेंक के साथ इस सटीक समस्या थी (Cpanel:

बिंदु बाल्टी CORS बताने के लिए इस उत्तर में हेडर <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader>

अधिक जानकारी के पर्दाफाश करने के लिए था)। मैं एक वर्डप्रेस एकाधिक परियोजना के लिए मायावी "कुकी-कम डोमेन" पर काम कर रहा था और मेरे "www.domain.tld" पृष्ठों क्रोम में निम्न त्रुटि (3 बार) होगा:

मूल से 'http://static.domain.tld फ़ॉन्ट 'क्रॉस-ओरिजिनल रिसोर्स शेयरिंग पॉलिसी द्वारा लोड होने से अवरुद्ध कर दिया गया है: अनुरोधित संसाधन पर' एक्सेस-कंट्रोल-ऑब्जेक्ट-ओरिजिन 'हेडर मौजूद नहीं है। उत्पत्ति 'http://www.domain.tld' इसलिए पहुंच की अनुमति नहीं है।

और Firefox में, थोड़ा और विस्तार:

डाउनलोड करने योग्य फ़ॉन्ट: डाउनलोड विफल (font-family: "FontAwesome" शैली: सामान्य वजन: सामान्य खिंचाव: सामान्य src सूचकांक: 1): बुरा यूआरआई या क्रॉस-साइट एक्सेस की अनुमति नहीं है स्रोत: http://static.domain.tld/wp-content/themes/some-theme-here/fonts/fontawesome-webfont.woff2?v=4.7.0
font-awesome.min.css: 4: 14 क्रॉस-ओरिजिनल अनुरोध अवरुद्ध: वही मूल नीति http://static.domain.tld/wp-content/themes/some-theme-here/fonts/fontawesome-webfont.woff?v=4.7.0 पर दूरस्थ संसाधन को पढ़ने की अनुमति देती है। (कारण: सीओआरएस हेडर 'एक्सेस-कंट्रोल-अनुमति-उत्पत्ति' गायब)।

मुझे QWANT-ing के आसपास मिल गया (QWANT।कॉम = शानदार) और इसलिए पोस्ट इस पाया:

Access-Control-Allow-Origin wildcard subdomains, ports and protocols

अलग साझा होस्ट सहयोगी स्टाफ के साथ बातचीत में एक घंटे (एक भी एक ब्राउज़र ... में F12 के बारे में पता नहीं था) तो प्रतिक्रिया की प्रतीक्षा mod_security के साथ खेलते समय कोई खुशी के बाद कटौती की गई टिकट के लिए। मैं बीच में पद से एक साथ .htaccess फाइल के लिए कोड पक्की सड़क के लिए करने की कोशिश की, और 406 त्रुटियों में सुधार के लिए काम करने के लिए यह मिल गया, दोषरहित:

<IfModule mod_headers.c> 
    <IfModule mod_rewrite.c> 
     SetEnvIf Origin "http(s)?://(.+\.)?domain\.tld(:\d{1,5})?$" CORS=$0 
     Header set Access-Control-Allow-Origin "%{CORS}e" env=CORS 
     Header merge Vary "Origin" 
    </IfModule> 
    </IfModule> 

मैं यह भी कहा कि में मेरी .htaccess के शीर्ष करने के साइट रूट और अब मेरे पास बॉब नामक एक नया चाचा है। (*** निश्चित रूप से डोमेन.tld भागों को जो भी डोमेन आप काम कर रहे हैं, उसे बदल दें ...)

इस पोस्ट का मेरा पसंदीदा हिस्सा हालांकि Regex OR (|) में कई साइटों की क्षमता है CORS "हैक" करके:

एकाधिक साइटों की अनुमति देना:

SetEnvIf Origin "http(s)?://(.+\.)?(othersite\.com|mywebsite\.com)(:\d{1,5})?$" CORS=$0 

इस सुधार में ईमानदारी से एक तरह से मेरे मन विस्फोट से उड़ा दिया, क्योंकि मैं पहले देव के फॉर्च्यून पर काम करने के साथ इस मुद्दे में भाग लिया है, 500 कंपनियां जो अपाचे के मेरे ज्ञानबेस से ऊपर एमआईएलएस हैं और ' अपाचे सेटिंग्स पर ट्विक करने के लिए आईटी प्राप्त किए बिना इस तरह की समस्याओं को हल करें।

यह उन सभी सीडीएन मुद्दों को ठीक करने के लिए जादू बुलेट है (या यदि आप क्लाउडफ्लारे का उपयोग करते हैं तो कुकी के नीचे कम करें) डोमेन के साथ भेजे जाने वाले कुकीज़ से अनावश्यक वेब ट्रैफ़िक की मात्रा को कम करने के लिए डोमेन प्रत्येक छवि अनुरोध केवल सर्वर द्वारा खराब अंधेरे की तारीख के रूप में छीनने के लिए अनुरोध किया जाता है।

सुपर सिक्योर, सुपर सुरुचिपूर्ण। इसे प्यार करें: आपको अपने सर्वर बैंडविड्थ को संसाधन चोरों/हॉट-लिंक-एर प्रकारों में खोलना नहीं है।

@Noyo https://stackoverflow.com/users/357774/noyo

@DaveRandom https://stackoverflow.com/users/889949/daverandom:

सुलझाने क्या एक बार .htaccess, जिन्हें मैं से एक साथ इस कोड pieced साथ न सुलझा हुआ मान लिया गया था के लिए इन 3 प्रतिभाशाली मन से करना एक संयुक्त प्रयास करने के लिए प्रॉप्स

@ प्रताप-koritala https://stackoverflow.com/users/4401569/pratap-koritala

संबंधित मुद्दे