在使用JSONP时,jQuery不会在$ .ajax()的Success函数中返回任何API结果

时间:2010-12-22 11:33:34

标签: jquery ajax twitter jsonp

我在从jQuery $ .ajax()函数的JSONP数据类型中获取任何结果时遇到了很多麻烦。这是我的jQuery代码:

  $('#show_tweets').click(function(){
    $.ajax({
      type: 'get',
      url: 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=jquery',
      dataType: 'jsonp',
      succes: function(data) {
        $.each(data, function() {
          $('<div></div>')
            .hide()
            .append('<img src="'+ this.profile_image_url +'"/>')
            .append('<p>'+ this.text +'</p>')
            .appendTo('#tweets_gallery')
            .fadeIn();
        })
      },
      error: function() {
        alert('Iets gaat fout!!');
      }
    });
  });

我已将#show_tweets ID分配给P标签。 #tweets_gallery是一个空的DIV。现在,我知道我也可以使用$ .getJSON()函数,但我只是想知道如何使用 $ .ajax()正确检索JSONP结果请求。我点了好几次,但没有输出任何东西。

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果由于您的拼写错误而导致错误:

succes: function(data)应为success: function(data)

在回复下面的评论时,profile_image_url未定义的原因是因为根范围中没有属性。从Twitter返回的JSON采用以下形式:

{
  "text" : "The twitter text",
  "user" : {
           "profile_image_url" : "http://path.to.profileimage/",
           ...
  },
  ...
}

因此this.text存在(这就是您获取值的原因)但您应该以{{1​​}}

的形式访问个人资料图片

请参阅twitter API了解JSON的结构。