0

このコードは、ボタンの 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');

このコードは Load 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オブジェクトになるだけです。

Lemonfree API のみが JSONP をサポートしていないようです。リンク先のリソースはプレーンな JSON です - コールバックの「パディング」がありません。また、SOPにより、Ajax 経由で直接アクセスすることができないため、何らかのプロキシを使用する必要があります。

于 2013-03-26T01:24:15.187 に答える