我正在尝试使用找到https://www.youtube.com/watch?v=Vwd3pduVGKY的Soundcloud小部件API。
我有我的iframe
<iframe id="SCIframe"></iframe
我收录了剧本
<script src="https://w.soundcloud.com/player/api.js" type="text/javascript"></script>
然后,我在一个函数中执行这个脚本。
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();
});
首次加载页面时,soundcloud歌曲播放效果良好。但是当我再次调用它而不刷新页面时,我得到 跨源请求被阻止:同源策略不允许在here读取远程资源。 (原因:CORS标题&#39;访问控制 - 允许 - 来源&#39;不匹配&#39; &#39;)。* 消息,并且歌曲无法播放。< / p>
为什么?
答案 0 :(得分: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);
...
如果有人有更好的方法来解决它。我等了