0

此代码在 Button onClick 事件上:

function loadJSONData(url) {
  var headID = document.getElementsByTagName("head")[0];
  var newScript = document.createElement('script');
      newScript.type = 'text/javascript';
      newScript.src = url;
  headID.appendChild(newScript);
}

loadJSONData('http://api.lemonfree.com/listings?key=2806cdf10605dc9598b1cf3a2387acb7&make=HUMMER&model=H2&zip=80901&distance=100&per_page=25&sortby=Price&sortdir=ASC&year_from=2005&year_to=2008&format=json&callback=processJSONData');

此代码位于加载 JavaScript 区域

function processJSONData(data){
  alert( "Id: " + data.response.requestType );

  console.log( 'Id:' );
  console.log( data.response.requestType );
}

当我按下按钮时,会触发 onclick 事件并返回以下 JSON 数据。

问题是我无法弄清楚如何用它来引用数据。

我已经尝试了我能想到的一切来访问数据元素。

data.response.requestType,
data.response.result[0].id

response.requestType,
response.result[0].id

等等

www.jsonlint.com 将返回的数据验证为有效的 json,jsonviewer.stack.hu 也将返回的数据验证为有效的 json。

任何帮助将不胜感激。

标记


如果您在浏览器中输入此信息,您将收到返回的数据

http://api.lemonfree.com/listings?key=2806cdf10605dc9598b1cf3a2387acb7&make=HUMMER&model=H2&zip=80901&distance=100&per_page=25&sortby=Price&sortdir=ASC&year_from=2005&year_to=2008&format=json&callback=processJSONData

4

1 回答 1

0

您的loadJSONData函数实际上使用JSONP,因此您根本不需要解析任何东西 -data只是对象。

只有柠檬免费 api 似乎不支持 JSONP,您链接到的资源是纯 JSON - 缺少回调“填充”。SOP会阻止您直接通过 Ajax 访问它,因此您需要使用某种代理。

于 2013-03-26T01:24:15.187 回答