1

作为Play playlist or track by permalink not trackid的后续行动:提供的解决方案似乎在任何地方都可以正常工作,除了 Mac 上的 Safari。

在 Mac 上的 Safari 上,我们看到 XMLHttpRequest 无法加载http://api.soundcloud.com/playlists/ .json?client_id=...,Access-Control-Allow-Origin 不允许 Origin

由于我们已经将 JavaScript 嵌入到另一个站点(Confluence)中,这有点复杂。独立的小提琴在 Safari 上运行良好。

From XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin我怀疑问题与 jsonp 有关,但实际上这超出了我的专业知识。

任何建议表示赞赏。

谢谢,马丁。

4

1 回答 1

2

您可以尝试使用 JSONP 方法。这是一个使用 JSONP 而不是 XMLHttpRequest的更新小提琴。主要区别在于getSoundCloudId()方法和全局jsonpResponse()方法的添加。

function getSoundCloudId(permalink) {
  var jsonp   = document.createElement('script');
  var script  = document.getElementsByTagName('script')[0];
  jsonp.type  = 'text/javascript';
  jsonp.async = true;
  jsonp.src   = 'http://api.soundcloud.com/resolve.json?client_id='+CLIENT_ID 
              + '&url='+permalink+'&callback=jsonpResponse';
  script.parentNode.insertBefore(jsonp, script);
  return false;
}
于 2013-10-18T19:14:47.803 回答