【问题标题】:Origin http://localhost is not allowed by Access-Control-Allow-Origin (iTunes API)Access-Control-Allow-Origin(iTunes API)不允许来源 http://localhost
【发布时间】:2014-07-14 07:13:21
【问题描述】:

我正在使用 iTunes Api 获取 30 秒的歌曲预览。

但我得到这个错误:

[Error] XMLHttpRequest cannot load https://itunes.apple.com/search?term=Dare&limit=1&entity=song&media=music. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

如果您转到https://itunes.apple.com/search?term=Dare&limit=1&entity=song&media=music,您会看到一切正常。 这是我的代码:

function build_player(image)
{
    $.get("https://itunes.apple.com/search", {term: "Dare", limit: 1, entity: "song", media: "music"}, function(result) {
        $(image).parent().append('<audio src="'+result.results[0].previewUrl+'" controls>Il tuo browser non supporta i file audio.</audio>');
    });
}

并且该函数附加到图像的 onLoad 事件中,如下所示:

    <li>
        <img src="image.jpg" onload="build_player(this);" />
    </li>

【问题讨论】:

  • 是的,您正在尝试 XSS 并且 itunes.apple.com 没有支持您的请求的 CORS 标头。您无法在代码中执行任何操作来解决此问题。

标签: jquery ajax get itunes


【解决方案1】:

XMLHttpRequest 不能从运行脚本的服务器以外的服务器请求资源。如果您查看documentation,您可以看到(就在大表上方)您必须将 URL 放入带有 callback 参数的 &lt;script&gt; 标记中,该参数是将被调用的 JS 函数的名称当脚本标签完成加载时。

【讨论】:

  • 谢谢@The6P4C,但我无法为我想要的每首歌曲创建一个 ')?
猜你喜欢
  • 2013-04-09
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2013-07-20
  • 2012-11-04
相关资源
最近更新 更多