2011-03-28 15 views
10

मेरे पास एक वेब पेज है जो आईएफआरएएम में लोड होता है, जो आईई और फ़ायरफ़ॉक्स में सही ढंग से चलता है लेकिन ओपेरा में नहीं। जो मुझे नफरत है, क्योंकि मैं वर्षों से ओपेरा उपयोगकर्ता रहा हूं। और मैंने यह बात लिखी। :-)ओपेरा कुछ जावास्क्रिप्ट फ़ाइलों को लोड नहीं करेगा

समस्या यह है कि ओपेरा पृष्ठ में शामिल कुछ जावास्क्रिप्ट फ़ाइलों को लोड नहीं कर रहा है। मुझे संदेह है कि यह इस तथ्य से संबंधित है कि पृष्ठ स्वयं HTTPS के माध्यम से लोड किया गया है और एक अलग मेजबान और बंदरगाह से HTTP के माध्यम से शामिल फ़ाइलों को लोड किया गया है। मेरा मानना ​​है कि ओपेरा इसे अनुमति देता है, लेकिन ड्रैगनफ्लाई का नेट टैब उन्हें लोड करने का प्रयास भी नहीं दिखाता है।

पृष्ठ Rally "कस्टम ऐप" है, और मैं इस तथ्य को नियंत्रित नहीं कर सकता कि यह एक IFRAME में लोड है या यह HTTPS के माध्यम से लोड होता है। मैं इस तथ्य को भी नियंत्रित नहीं कर सकता कि शामिल फ़ाइलों को एक अलग मेजबान से लोड किया गया है, या मेजबान केवल HTTP का समर्थन करता है। तो मैं मिश्रित सामग्री के साथ अटक गया हूँ। की

<script src="http://www.example.com:81/common/jquery-1.4.2.js"></script> 
<script src="http://www.example.com:81/common/jsTree/jquery.jstree.js"></script> 
<script src="http://www.example.com:81/common/utils_jserror.js"></script> 
<script src="http://www.example.com:81/common/utils_logging.js"></script> 
<script src="http://www.example.com:81/common/utils_print_r.js"></script> 
<script src="http://www.example.com:81/common/utils_rally_query.js"></script> 
<script src="http://www.example.com:81/common/json2.js"></script> 
<script src="/slm/js/slm.js"></script> 
<script src="/slm/js-lib/dojo/rally-1.3.1/dojo/dojo.js.uncompressed.js"></script> 
<script src="/slm/mashup/1.18/js/batch-toolkit.js"></script> 
<script src="/slm/mashup/1.18/js/utilities.js"></script> 

सभी "/ SLM/..." सामान के लोड हो रही है, और कोई नहीं :

अन्य सामान के अलावा, पृष्ठ के HEAD तत्व (एक सा स्वच्छ) शामिल हैं "www.example ..." सामान है।

किसी को भी यह पता चला कि मैं क्या गलत कर रहा हूं?

+0

लिपियों इंटरनेट पर एक नियमित रूप से सर्वर से http से भरी हुई हैं, या है यह सर्वर इंट्रानेट या स्थानीय होस्ट पर है? – hallvors

+1

क्या आपने प्रोटोकॉल का उल्लेख किये बिना // // के साथ अपने पते शुरू करने का प्रयास किया था। उदा: 'src =" // www.example.com' – karlcow

+0

@ हॉलवर्स: "example.com" स्क्रिप्ट स्थानीय इंट्रानेट पर एक विंडोज सर्वर से हैं, और सार्वजनिक इंटरनेट से उपलब्ध नहीं हैं। लेकिन वे से पहुंच योग्य हैं मशीन जहां ब्राउज़र चल रहा है - अगर मैं उन्हें एड्रेस बार में काट और पेस्ट करता हूं, तो जावास्क्रिप्ट स्रोत फाइल ब्राउज़र में पठनीय हैं। –

उत्तर

14

ओपेरा में क्रॉस-नेटवर्क सुरक्षा नामक एक सुविधा है। असल में यह कुछ अतिरिक्त सीमाएं रखता है कि इंटरनेट से कौन से पेज आपके स्थानीय नेटवर्क पर सामान के साथ कर सकते हैं।

इस सुविधा का कारण मौजूद है, तथाकथित "फिश फार्म" शोषण का उदय है, जहां यह पता चला था कि कुछ लोकप्रिय घर राउटर/मोडेम की HTTP- आधारित कॉन्फ़िगरेशन स्क्रीन इतनी खराब थी कि दुर्भावनापूर्ण वेब पेज अपने राउटर सेटिंग्स को फिर से लिखें - उदाहरण के लिए प्रॉक्सी का उपयोग करने के लिए इसे कॉन्फ़िगर करने और दुर्भावनापूर्ण सर्वर के माध्यम से अपने सभी ट्रैफ़िक को पाइप करें। इसका मुकाबला करने के लिए, ओपेरा जानता है कि कुछ आईपी पते सार्वजनिक वेब पर उपयोग नहीं किए जाते हैं (जैसे 127.0.0.1 या 1 9 2.168। *) और यह किसी "सार्वजनिक" साइट से पृष्ठों को लोड करने या अनुरोधों को " स्थानीय "साइट।

आप प्रति साइट के आधार पर इसे पुन: कॉन्फ़िगर कर सकते हैं। सबसे आसान बात शायद "सार्वजनिक" साइट पर स्थानीय सर्वर से संसाधनों में से एक को लोड करने पर IFRAME जोड़ रही है। IFRAME कुछ ऑप्ट-इन लिंक के साथ "क्रॉस-डोमेन अनुरोध" चेतावनी पृष्ठ दिखाएगा। उस सर्वर से स्थानीय अनुरोधों को हमेशा अनुमति देने के लिए लिंक पर क्लिक करें, और वॉयला - आपका क्रॉस-नेटवर्क ऐप अब फिर से काम करना चाहिए।

(एक IFRAME जोड़ा जा रहा है, स्रोत देख <iframe src="http://local/whatever/included/file.js"></iframe> जोड़ने, बचत के रूप में के रूप में आसान है, और "उपकरण> उन्नत> कैश से फिर से लोड करें")

+1

ओह, यह लगता है ** वास्तव में ** वादा करता हूँ! सर्वर जो ओपेरा लोड नहीं करेगा, वह 10.x.y.z पते पर है, जो शायद ओपेरा के निषेध से मेल खाता है। मैं इस समाधान को आजमाने के लिए इंतजार नहीं कर सकता। –

+0

यह अद्भुत काम किया! धन्यवाद! –

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