Stratus播放器不再加载来自页面锚标签的曲目

时间:2014-07-25 18:14:31

标签: soundcloud

我知道此时此刻对Stratus的支持有限,但有记录......

在2014-07-25的stratus.sc停机后,Stratus播放器将不再使用.stratus类的锚标签播放。

这似乎是一个CORS问题。

Chrome开发者控制台的输出:

  

无法在'DOMWindow'上执行'postMessage':提供的目标来源('http://stratus.sc')与收件人窗口的来源('http://www.stratus.sc')不匹配。

我使用本地托管的stratus.js文件,因为我做了一些调整以允许AJAX友好链接加载,但即使本机托管的stratus.js也会失败,因为它有一个对stratus.sc的硬编码引用。

然而,该页面是不可能的,因为stratus.sc现在强制重定向到www.stratus.sc,正如Chrome错误消息所示,stratus.sc服务器将其视为不同的域。

stratus.js中的违规行似乎是:

$.postMessage($(this).attr('href'), src, $('#stratus iframe')[0].contentWindow);

postMessage方法本身正在运行,但由于stratus服务器上的更严格的跨域策略,父窗口无法再将参数传递给stratus iframe。

希望有人可以查看服务器配置并恢复以前的功能。

由于

2 个答案:

答案 0 :(得分:1)

您还可以在本地托管stratus.js文件并进行小幅更新以适应重定向。

变化:

    ... 'http://example.com:3000' : 'http://stratus.sc';

要:

    ... 'http://example.com:3000' : 'http://www.stratus.sc';

答案 1 :(得分:-1)

要使此功能再次起作用:

  1. http://www.stratus.sc/stratus.js
  2. 下载脚本
  3. 在文本编辑器中打开脚本&第10行更改:“stratus.sc”改为“www.stratus.sc”
  4. 将已编辑的脚本上传到您的服务器。
  5. 在网页的head标签中,找到stratus库到服务器上的新位置。 例如 <script type="text/javascript" src="http://stratus.sc/stratus.js"></script>
  6. 变为

    <script type="text/javascript" src="http://yourdomain.com/scripts/stratus.js"></script>

    现在,与'stratus'级的链接应该再次在层云播放器中播放