dropbox jsonp文件

eja*_*ang 3 javascript text jsonp file dropbox

我正在尝试使用来自跨域的纯javascript/html下载一些数据,dropbox是特定的.

<html>
<head>
</head>
<body>
    <div id = 'twitterFeed'></div>
    <script>
    function myCallback(dataWeGotViaJsonp){
        var text = '';
        var len = dataWeGotViaJsonp.length;
        for(var i=0;i<len;i++){
            twitterEntry = dataWeGotViaJsonp[i];
            text += '<p><img src = "' + twitterEntry.user.profile_image_url_https +'"/>' + twitterEntry['text'] + '</p>'
        }
        document.getElementById('twitterFeed').innerHTML = text;
    }
    </script>
    <script type="text/javascript" src="http://dl.dropbox.com/u/6438697/padraicb.json?count=10&callback=myCallback"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,json没有加载.但是,当我将网址设为" http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=myCallback " 时,json会正确加载.我从这里得到了这个例子

任何人都可以解释为什么Dropbox不起作用?

谢谢!

更新:

<script type=text/javascript>
function myCallback(dataWeGotViaJsonp){
    alert(dataWeGotViaJsonp);
}
</script>
<script type="text/javascript" src="http://dl.dropbox.com/u/6438697/test2?&callback=myCallback"></script>
Run Code Online (Sandbox Code Playgroud)

返回[object object]或undefined ......还有什么问题?test.json的内容是myCallback({"your":"json"});

Yah*_*hel 6

您不能只将"回调"一词添加到您的URL中,并希望Dropbox将其包装为JSONP.您将一个JSON文件放在Dropbox上并公开共享,但Dropbox不是动态服务器.您需要一个可编写脚本的环境来获取回调参数值并将其包装在JSON周围,以使其成为"JSONP".

Twitter URL工作的原因是他们的API被配置为将回调参数作为客户端期望JSONP的标志,这实际上只是"包含在回调函数中的JavaScript对象文字"的一个奇特术语.你告诉twitter将调用哪个函数,并且它们将返回一个浏览器将作为脚本执行的文件,将该对象作为参数传递给回调函数.

如果您不需要JSONP回调函数名称是动态的,则需要使用Dropbox,只需自己包装JSON即可.您需要做的就是编辑文件,并在函数名前加上有效的JSON,然后用close paren附加它.

myCallback(  {"your":"json"}  );
Run Code Online (Sandbox Code Playgroud)