我已经坐了几个小时了,我不明白为什么。
q
正在工作中。该 URL 确实给了我正确的 JSON 响应。它在 Firebug 的 Net-tab 下的 JSON 选项卡下显示为对象和数组等等,一切都很好。我也尝试过使用其他我知道有效的 URL。同样的事情也会发生。我在我的小应用程序的其他地方有另一个功能,工作正常,并且几乎完全相同,只是另一个 API 并从其他地方调用。工作正常,
data
变量在进入 getJSON 函数时被填充。在这里,data
永远不会充满任何东西。我在 Firebug 的每一行都有断点,但没有结果。什么都没发生。它只是到达 getJSON 行,然后在函数之后跳到调试器语句。
var usedTagCount = 10; var searchHits = 20; var apiKey = "a68277b574f4529ace610c2c8386b0ba"; var searchAPI = "http://www.flickr.com/services/rest/?method=flickr.photos.search&" + "format=json&api_key=" + apiKey + "&sort=interestingness-desc&per_page=" + searchHits + "&jsoncallback=?&nojsoncallback=1&tags="; var tagString = ""; var flickrImageData = new Array(); function search(query) { for(var i = 0; i < usedTagCount; i++) { tagString += query[i].key + ","; } var q = searchAPI + tagString; $.getJSON(q, function(data) { debugger; /* It never gets here! */ $.each(data.photos.photo, function(i, item) { debugger; flickrImageData.push(item); }); }); debugger; return flickrImageData; }
请求 URL ( q
) 示例:
http://www.flickr.com/services/rest/?method=flickr.photos.search&format=json&api_key=a68277b574f4529ace610c2c8386b0ba&sort=interestingness-desc&per_page=20&jsoncallback=?&tags=london,senior,iphone,royal,year,security,project,records,online,after,
我确实想知道,因为 JSONView(firefox 插件)无法正确格式化它,所以返回的不是真正的 JSON - mime 类型是 text/html。然而,Firebug 将其解释为 JSON(如上所述)。所有标签词都来自应用程序的另一部分。