调用SC.oEmbed时观察到ERR_FILE_NOT_FOUND

时间:2014-06-04 03:50:07

标签: soundcloud

我想用SC.oEmbed播放来自 SoundCloud 的声音。但是当我使用它时,我总是得到ERR_FILE_NOT_FOUND错误。

我将源代码放在Jsfiddle中:http://jsfiddle.net/n2sVk/,它运行正常。但是当我将其保存为HTML文件并使用Chrome打开时,会发现错误。 源代码如下所示:

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="UTF-8">
</head>
<body>

    <script src="http://connect.soundcloud.com/sdk.js"></script>

    <div id="wrap"></div>
    <script type="text/javascript">
        SC.initialize({
            client_id: "c202b469a633a7a5b15c9e10b5272b78",
            redirect_uri: "http://connect.soundcloud.com/examples/callback.html"
        });

        SC.connect(function(){
            console.log("connect " + "return"); 
            SC.get("/me", function(me){
            console.log("me.username:" + me.username);
            console.log("me.description:" + me.description);

            SC.get("/tracks", {limit: 1}, function(tracks){
                console.log("get track return");
                track = tracks[0];
                console.log("track.uri: " + track.uri);
                console.log("track.title: " + track.title);
                SC.oEmbed(track.permalink_url, 
                          {auto_play: true},
                          document.getElementById("wrap"));        
                });
            });
        });
    </script>

</body>

以下是Chrome的错误:

  

获取文件://soundcloud.com/oembed.json?auto_play = true&amp; url = http%3A%2F%2Fsoundcloud.com%2Fyung-crusty-beats%2Fmystic-juice net :: ERR_FILE_NOT_FOUND sdk.js:1   oEmbed响应:null

1 个答案:

答案 0 :(得分:1)

这是因为当您在本地测试时,您使用的是“file:///”协议。

图书馆的源代码is using //代替协议 - 这使图书馆可以同时使用httphttps。但是,当您从文件而不是Web服务器访问代码时,oembed函数可能无法正常工作。

解决方案是运行本地Web服务器,例如Python simple server,您可以从项目的根文件夹运行该服务器:

python -m SimpleHTTPServer