javascript错误[jsonFlickrApi未定义]

javascript错误[jsonFlickrApi未定义],javascript,json,api,flickr,Javascript,Json,Api,Flickr,我调用一个FLickrAPI,它返回一个如下所示的xmlhttp.responseText: jsonFlickrApi({"photos":{"page":1, "pages":200, "perpage":100, "total":"19934", "photo":[{"id":"7315581986", "owner":"62691288@N00", "secret":"504915125a", "server":"7090", "farm":8, "title":"China, Ti

我调用一个FLickrAPI,它返回一个如下所示的
xmlhttp.responseText

jsonFlickrApi({"photos":{"page":1, "pages":200, "perpage":100, "total":"19934",
 "photo":[{"id":"7315581986", "owner":"62691288@N00", "secret":"504915125a", 
"server":"7090", "farm":8, "title":"China, Tiananmen Square", "ispublic":1,
 "isfriend":0, "isfamily":0}, {"id":"7308693706",
...
var jsonResponse = xmlhttp.responseText ;
jsonResponse = eval("("+jsonResponse + ")");
var output += jsonResponse.photos.photo[1].id ;
alert(output);
我试着这样解析它:

jsonFlickrApi({"photos":{"page":1, "pages":200, "perpage":100, "total":"19934",
 "photo":[{"id":"7315581986", "owner":"62691288@N00", "secret":"504915125a", 
"server":"7090", "farm":8, "title":"China, Tiananmen Square", "ispublic":1,
 "isfriend":0, "isfamily":0}, {"id":"7308693706",
...
var jsonResponse = xmlhttp.responseText ;
jsonResponse = eval("("+jsonResponse + ")");
var output += jsonResponse.photos.photo[1].id ;
alert(output);
Firebug告诉我:
jsonFlickrApi未定义

  • 为什么我会收到此错误消息

  • 为什么我必须首先使用“eval”

看起来您得到的是对请求的-响应,而不是JSON响应。是一个JSON对象,包装在函数调用中。因此,只需定义函数
jsonFlickrApi
,当响应可用时就会调用该函数:

function jsonFlickrApi (response) {
  console.log(
     "Got response from Flickr-API with the following photos: %o", 
     response.photos
  );
  // Handle the response here. I.E update the DOM, trigger event handlers etc.
}

// Later in your XMLHttpRequest code:
var jsonResponse = xmlhttp.responseText ;
// This will call the jsonFlickrApi-function.
eval("("+jsonResponse + ")");
看起来您得到的是对请求的响应,而不是JSON响应。是一个JSON对象,包装在函数调用中。因此,只需定义函数
jsonFlickrApi
,当响应可用时就会调用该函数:

function jsonFlickrApi (response) {
  console.log(
     "Got response from Flickr-API with the following photos: %o", 
     response.photos
  );
  // Handle the response here. I.E update the DOM, trigger event handlers etc.
}

// Later in your XMLHttpRequest code:
var jsonResponse = xmlhttp.responseText ;
// This will call the jsonFlickrApi-function.
eval("("+jsonResponse + ")");

是否正确导入了包含jsonFlickrApi()函数的.js文件?请发布这些代码和其他任何可以让我们更完整了解的代码。您是否正确导入了包含jsonFlickrApi()函数的.js文件?请张贴该代码和任何其他将给我们一个更完整的图片。