首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dropbox jsonp文件

dropbox jsonp文件
EN

Stack Overflow用户
提问于 2011-08-06 11:43:45
回答 2查看 2.5K关注 0票数 3

我正在尝试使用纯javascript/html从跨域下载一些数据,具体地说就是dropbox。

代码语言:javascript
复制
<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>

由于某些原因,json没有加载。然而,当我将url设置为"http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=myCallback“时,json加载正确。我从here得到了这个例子

有人能解释为什么dropbox不能工作吗?

谢谢!

更新:

代码语言:javascript
复制
<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>

返回object对象或未定义...还是有什么问题吗?test.json的内容为myCallback( {"your":"json"} );

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-06 11:47:28

你不能在你的URL中添加“callback”这个词,然后期望Dropbox把它包装成JSONP。你在你的Dropbox上放了一个JSON文件并公开分享,但Dropbox不是一个动态服务器。您需要一个可脚本化的环境来获取回调参数值,并将其包装在JSON中,以便使其成为"JSONP“。

Twitter URL工作的原因是他们的API被配置为接受回调参数作为客户端正在等待JSONP的标志,JSONP实际上只是“包装在回调函数中的JavaScript对象文字”的一个花哨的术语。您告诉twitter将调用哪个函数,它们将返回一个文件,浏览器将该文件作为脚本执行,并将该对象作为参数传递给您的回调函数。

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

也就是说,

代码语言:javascript
复制
myCallback(  {"your":"json"}  );
票数 6
EN

Stack Overflow用户

发布于 2012-10-29 21:57:52

可以使用Google Apps脚本作为不支持jsonp的托管站点的代理。这里有关于如何做到这一点的文章,http://ramblings.mcpher.com/Home/excelquirks/jsonp

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6964598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档