2012-11-19 18 views
5

Ich versuche, die Funktion SC.Widget von dieser kleinen API zu nennen: http://developers.soundcloud.com/docs/api/html5-widget, aber ich bekomme diese Fehlermeldung im Chrome-Inspektor und ich stecke dort fest.Fehler beim Zugriff auf einen iframe in JavaScript

Unsafe JavaScript Versuch Rahmen Zugriff mit URL file://localhost/Users/maxwell/Desktop/test/test.html von Rahmen withUrl

http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F67825032&auto_play=false&show_artwork=true&color=ff7700.

Der Rahmen, der Zugriff anfordert, hat ein Protokoll von "http", der Rahmen ist hat Zugriff hat ein Protokoll von "Datei". Protokolle müssen übereinstimmen.

<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"); 
} 

Ich weiß, es diese Gründe für die Sicherheit tut, aber wie ändere ich das Soundcloud-Widget, wenn ich nicht den Rahmen zugreifen kann?

Vielen Dank für Ihre Hilfe!

Antwort

8

Beim Zugriff auf einen Iframe mit JavaScript oder JSON AJAX-Anfragen können Sie nur Zugriff oder eine Antwort erhalten, wenn sie sich in derselben Domäne befinden. Andernfalls muss der Server explizit festgelegt:

Access-Control-Allow-Origin: *

in den Headern. Sie können auch eine durch Kommas getrennte Liste zulässiger Domänen anstelle von * angeben.

Sie müssen dies in einer Entwicklungsumgebung testen, in der sich die Webseite und die Datenquelle in derselben Domäne befinden, z. B. localhost, andernfalls können Sie nichts anderes tun, wenn Sie Chrome nicht starten. disable-Web-Sicherheit

+0

@Maxwell SoundCloud müsste diesen Header setzen. Nicht du. – monokrome

2

du obwohl

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

nicht in der Oper unterstützt Ihre iframe hinzufügen könnte - Neuteil aus w3schools. Es wird sich um den Fehler kümmern, aber es wird den Player beschädigen.

Verwandte Themen