Soundcloud API - Access-Control-Allow-Origin 不允许来源

2024-04-02

作为后续通过永久链接而不是 trackid 播放播放列表或曲目 https://stackoverflow.com/questions/19351797/play-playlist-or-track-by-permalink-not-trackid/19352075#19352075:提供的解决方案似乎在除 Mac 上的 Safari 之外的任何地方都运行良好。

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

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

From XmlHttpRequest 错误:Access-Control-Allow-Origin 不允许 Origin null https://stackoverflow.com/questions/3595515/xmlhttprequest-error-origin-null-is-not-allowed-by-access-control-allow-origin我怀疑问题与 jsonp 有关,但这确实超出了我的专业知识。

任何建议表示赞赏。

谢谢,马丁。


您可以尝试使用 JSONP 方法。这是一个更新了小提琴 http://jsfiddle.net/Z6tbj/1/使用 JSONP 而不是 XMLHttpRequest。主要区别在于getSoundCloudId()方法并添加一个全局的jsonpResponse() method.

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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Soundcloud API - Access-Control-Allow-Origin 不允许来源 的相关文章

随机推荐