V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lin
V2EX  ›  Project Babel

如何利用Babel API输出一个节点的帖子列表?

  •  
  •   lin · 2010-09-19 16:57:34 +08:00 · 4662 次点击
    这是一个创建于 4973 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先有过这么一个讨论:
    http://geekaa3.appspot.com/t/137

    我用上次做 GeeKaa iNspiration 的方法,用jQuery JSONP这样写:


    然后我在Coda上预览是成功的。在safari5也OK。
    可是在Chrome上load不出。

    我传了个页面在网上:
    http://tianshui.in/post.html

    帖子列表有人能load出来么?
    反正网上的这个我怎么都load不出来。

    我“检查元素”的到这两个错:


    但是本地文件没有这些错。

    还有一个问题,如果我用google api或者jQuery自家在网上托管的jQuery,那么本地在Coda也load不出来。

    谁能给我一点指点么?谢谢!
    9 条回复    1970-01-01 08:00:00 +08:00
    dimlau
        1
    dimlau  
       2010-09-19 17:16:17 +08:00
    XMLHttpRequest cannot load http://geekaa3.appspot.com/api/topics/show.json?node_name=tianshui. Origin http://tianshui.in is not allowed by Access-Control-Allow-Origin.
    lin
        2
    lin  
    OP
       2010-09-19 17:44:56 +08:00
    那我应该怎么去利用这个api呢?
    我的想法是不是不可行?
    (在站外调用api输出帖子列表)
    Sai
        3
    Sai  
       2010-09-19 18:59:56 +08:00
    JQuery跨域读取需要用jsonp
    Sai
        4
    Sai  
       2010-09-19 19:02:23 +08:00
    更进一步说:
    $.ajax({
    type:'GET',
    dataType:'jsonp',
    url:'http://www.domain.com/api/sth?callback=?',

    然后API里也要对callback做出对应响应
    lin
        5
    lin  
    OP
       2010-09-19 20:25:17 +08:00
    thank you so!
    是这样的,我处理那个dribbble的api时,是用了callback的。
    所以刚开始做现在这个事情的时候,我也加了callback。
    可是我发现加callback之后调不出内容,去掉反而可以了。

    不过你说的这个 $.ajax 我没有用过(目前也不知道怎么用),不过我会琢磨一下,非常感谢你。
    暂时无以为报。

    不过奇怪的还有,
    我照这里的方法:
    http://www.javaeye.com/topic/459441
    在本地调试的时候。
    如果用这个api:
    http://geekaa3.appspot.com/api/site/info.json
    加callback就不能返回数据不加就可以返回数据。不知道是什么回事。
    而用实例里的那个api,加callback是好的。
    Sai
        6
    Sai  
       2010-09-19 21:01:59 +08:00
    因为Babel的API并不支持JSONP,JSONP的格式类似:
    jsonp1251707322751({
    "title" : "GeeKaa",
    "slogan" : "GeeKaa = Geek's Amazing Art",
    "description" : "GeeKaa是一个面向创意工作者的关于“发现、分享、讨论”的地方",
    "domain" : "geekaa3.appspot.com"
    })
    那串数字就是callback的值
    lin
        7
    lin  
    OP
       2010-09-19 21:15:28 +08:00
    @Sai 不支持JSONP的话,那我那个在站外调数据的话,是不是就不可行?
    你说的“然后API里也要对callback做出对应响应”是不是意味着我应该对api作出修改?
    还有你说的 $.ajax 是否就能解决这个问题?
    实在抱歉我知道我太菜了。
    Livid
        8
    Livid  
    MOD
       2010-10-20 14:31:39 +08:00
    JSONP 会在 2.4.5 之前支持。
    chone
        9
    chone  
       2010-10-20 16:00:09 +08:00
    @lin 在本地做一个代理,然后再用ajax
    跨域只能用jsonp,不过目前还没有api
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2251 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 07:34 · PVG 15:34 · LAX 00:34 · JFK 03:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.