$ .getJSON语法问题

时间:2014-03-22 21:50:49

标签: jquery ajax json flickr

我要撕掉我的眼睛然后吃掉它们。我正试图从flickr中提取数据,显然我不知道我在做什么。

这有效:

var flickrAPI = "https://api.flickr.com/services/rest/api_key=xxxxx";
$.get(flickrAPI, 
{
method: "flickr.photosets.getList",
format: "json",
user_id: "xxxxx"
}, alert("ok")
);

我被警告“确定” 但是,当我尝试使用function(){}代替alert()...

var flickrAPI = "https://api.flickr.com/services/rest/api_key=xxxxx";
$.get(flickrAPI, 
{
method: "flickr.photosets.getList",
format: "json",
user_id: "xxxxx"
}, function(data) {alert("ok");}
);

什么都没发生。

另外,如果我将$ .get的返回值赋给变量,我将留下以下JSON对象:

{"readyState" : "1"}

这不是我想要的。有任何想法吗?值得注意的是,我正在使用的html文件是本地文件。

由于

2 个答案:

答案 0 :(得分:0)

由于same-origin policy,您无法使用AJAX从其他主机检索数据。

如果其他主机支持jsonp,则可以使用jsonp。它解释了如何在jQuery manual中使用{{1}}和jQuery。在Flickr的特定情况下,有一个blogpost解释了如何将jsonp与flickr一起使用。

答案 1 :(得分:0)

因为它是API我假设它有Access-Control-Allow-Origin标头,所以这应该工作

$.ajax({
  url: "https://api.flickr.com/services/rest/api_key=xxxxx",
  data: {
    method: "flickr.photosets.getList",
    format: "json",
    user_id: "xxxxx"
    },
  success: function(data) {alert("ok");},
  dataType: "json"
});