2011-01-13 117 views
0

我对AJAX还很陌生,我正在试用Twitter和Flickr。 Twitter目前运行良好,但我遇到了Flickr API的一些问题。使用Flickr JSON请求时没有返回结果

我没有收到任何结果。该URL似乎工作正常,我指着正确的对象包含数组('项目')。有人可以告诉我我做错了吗?谢谢!

 $('#show_pictures').click(function(e){ 
    e.preventDefault(); 
    $.ajax({ 
     url: 'http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=home&nojsoncallback=1', 
     dataType: 'jsonp', 
     success: function(data) { 
     $.each(data.items, function(i, item){ 
      $('<div></div>') 
      .hide() 
      .append('<h1>'+item.title+'</h1>') 
      .append('<img src="'+item.media.m+'" >') 
      .append('<p>'+item.description+'</p>') 
      .appendTo('#results') 
      .fadeIn(); 
     }) 
     }, 
     error: function(data) { 
     alert('Something went wrong!'); 
     } 
    }); 
    }); 

编辑:我已经改变了URL,我得到一个错误的报告早在Firefox中:“无效的标签”,就在根范围内的“标题”对象。

回答

0

尽量评论了这一点:

$('<div></div>') 
     .hide() 
     .append('<h1>'+item.title+'</h1>') 
     .append('<img src="'+item.media.m+'" >') 
     .append('<p>'+item.description+'</p>') 
     .appendTo('#results') 
     .fadeIn(); 

而只是做

console.log(data); 

如果你正在使用萤火虫(你可能应该是)或

alert(data); 

,将告诉你是否要求返回数据。仅供参考,我在你的url上运行curl并返回一堆json。

+0

不幸的是我没有收到任何数据。太奇怪了。我已将网址更改为http://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=home&jsoncallback=?&nojsoncallback=1,因此我可以删除“(”和“) “JSON中的字符......但这似乎没有帮助。 – Martijn1981 2011-01-13 11:16:19

0

是否使用dataType: 'json'而不是dataType: 'jsonp'有什么区别?

+0

它确实,在我的$ .ajax调用的“错误”对象突然显示的情况下:P。但除此之外,不。仍然不显示任何图像。 – Martijn1981 2011-01-13 13:23:52