-2

次の構造を使用して、javascript で json オブジェクトにアクセスする必要があります。

jsonp1354291250080({
    "query":{"count":"1","created":"2012","lang":"en"},
    "results":["this is a test"]
});

オンライン サービスからこのオブジェクトを受け取っています。その構造を制御できず、使用data.queryが機能していません。

アクセス方法わかる人お願いします。

更新: James Padolsey https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/の jquery.xdomainajax.js を使用し、jQuery の $.get() 関数を使用して実行していますクロスドメイン リクエスト

4

1 に答える 1

1

別のドメインにいるため、 JSONPサービスを使用しています。最善の策は、jQueryの$.getJSONに処理させることです。

URLに文字列「callback=?」が含まれている場合 (または同様に、サーバー側APIで定義されているように)、リクエストは代わりにJSONPとして扱われます。詳細については、 $。ajax()のjsonpデータ型の説明を参照してください。

そのページのJSONPの例:

<!DOCTYPE html>
<html>
<head>
  <style>img{ height: 100px; float: left; }</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div id="images">

  </div>
<script>
  $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
    {
      tags: "mount rainier",
      tagmode: "any",
      format: "json"
    },
    function(data) {
        $.each(data.items, function(i,item){
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if ( i == 3 ) return false;
    });
  });
</script>

</body>
</html>
于 2012-11-30T17:27:39.453 に答える