2016-11-05 4 views
0

SoundcloudウィジェットAPIを使用しようとしました。hereです。https://l9bjkkhaycw6f8f4.soundcloud.com/v1/eventsでブロックされたSoundCloudクロスオリジンリクエスト

は、私はその後、私は関数の中で、このスクリプトを実行するスクリプト

<script src="https://w.soundcloud.com/player/api.js" type="text/javascript"></script> 

を含ま

<iframe id="SCIframe"></iframe 

私のインラインフレームです。

var scPlayer; 
var iframeSoundcloud = document.getElementById("SCIframe"); 
iframeSoundcloud.src = "https://w.soundcloud.com/player/?url="+encodeURIComponent(lien); 
     scPlayer = SC.Widget("SCIframe"); 

scPlayer.bind(SC.Widget.Events.READY, function(){ 
      scPlayer.play(); 
     }); 

ページが最初に読み込まれると、サウンドクラウドの曲がうまく再生されます。しかし、私はページをリフレッシュせずに別の時間を呼び出すと、クロスオリジン要求がブロックされました:同じオリジンポリシーは、リモートリソースの読み取りをhttps://l9bjkkhaycw6f8f4.soundcloud.com/v1/eventsで許可しません。 (原因:CORSヘッダーの「Access-Control-Allow-Origin」が「」と一致しません)。*メッセージが再生されません。

なぜですか?

答えて

0

問題はIframeからのものでした。毎回新しいIframeを生成し、新しい曲を再生したい。

var frameSCID = "scIframe"+new Date().getMilliseconds(); 
     var iframeSC = $('<iframe></iframe>'); 
     iframeSC.attr({"id":frameSCID, "src":"https://w.soundcloud.com/player/?url="+encodeURIComponent(lien)}); 

     $("#scIframeContainer").html(iframeSC); 
     scPlayer = SC.Widget(frameSCID); 

... 

誰かがそれを改善するより良い方法を持っている場合。私は待っています

+0

SOはアドバイスではありません。あなたは正しいことを記して質問に答えました。 – Soviut

+0

いいえ、そうではありません。私はちょうど私の問題を修正した。しかし、新しい曲が再生するたびにiframeを生成するのは費用がかかります。私はより良い答えを得ることを願っています。そして、私は2日後まで私の答えに印を付けることはできません。 – user3502626

関連する問題