2012-11-19 13 views
5

में आईफ्रेम तक पहुंचने का प्रयास करने में त्रुटि मैं इस छोटे एपीआई: http://developers.soundcloud.com/docs/api/html5-widget से फ़ंक्शन SC.Widget को कॉल करने का प्रयास कर रहा हूं, लेकिन मुझे क्रोम इंस्पेक्टर में यह त्रुटि संदेश प्राप्त होता है और मैं वहां फंस गया हूं।जावास्क्रिप्ट

असुरक्षित जावास्क्रिप्ट फ्रेम withURL

http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F67825032&auto_play=false&show_artwork=true&color=ff7700 से URL file://localhost/Users/maxwell/Desktop/test/test.html साथ फ्रेम पहुंचने का प्रयास करें।

फ्रेम अनुरोध करने के लिए 'http' का प्रोटोकॉल है, फ्रेम पर पहुंचने के लिए 'फ़ाइल' का प्रोटोकॉल है। प्रोटोकॉल मेल खाना चाहिए।

<body> 
    <iframe id="soundcloud" width="100%" height="166" scrolling="no" frameborder="no" 
    src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F67825032&amp;auto_play=false&amp;show_artwork=true&amp;color=ff7700"></iframe> 
    <script> 
     Soundcloud(); 
    </script> 
</body> 


function Soundcloud() { 
    var widget1 = SC.Widget(iframeElement.soundcloud); 
    alert("widget1"); 
} 

मैं जानता हूँ कि यह सुरक्षा कारणों से यह कर रहा है, लेकिन अगर मैं फ्रेम का उपयोग नहीं कर सकते हैं कि कैसे मैं SoundCloud विजेट संशोधित करूँ?

मदद के लिए धन्यवाद!

उत्तर

8

जावास्क्रिप्ट के साथ आईफ्रेम एक्सेस करने या किसी भी JSON AJAX अनुरोध करने पर, आप केवल उसी डोमेन पर पहुंच या प्रतिक्रिया प्राप्त कर सकते हैं। अन्यथा, सर्वर स्पष्ट रूप से सेट करना होगा:

पहुंच-नियंत्रण-अनुमति दें-मूल: *

हेडर में

। आप * के बजाए अनुमत डोमेन की अल्पविराम से अलग सूची भी प्रदान कर सकते हैं।

तो आपको इसे एक ऐसे विकास वातावरण में जांचना चाहिए जहां वेब पेज और डेटा स्रोत उसी डोमेन पर हैं, जैसे कि लोकहोस्ट, अन्यथा वास्तव में ऐसा कुछ भी नहीं है जब तक आप क्रोम के साथ स्टार्ट-अप नहीं कर लेते - को निष्क्रिय-वेब-सुरक्षा

+0

@ मैक्सवेल ध्वनि क्लाउड को हेडर सेट करने की आवश्यकता होगी। तुम नहीं। – monokrome

2

आप अपने आइफ्रेम

sandbox="allow-same-origin allow-scripts" 

हालांकि ओपेरा में समर्थित नहीं करने के लिए इस जोड़ सकता है - w3schools से नया आइटम। यह त्रुटि का ख्याल रखेगा, लेकिन यह खिलाड़ी को तोड़ देगा।