2011-12-29 14 views
1

静的なURLにjsonファイルが格納されています。データファイルを取得してデータオブジェクトを取得したいと考えています。Jqueryを使用してJSONのデータを取得します

<div id="content"></div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.getJSON('https://s3.amazonaws.com/wallyball_production/comedy.json', function(data){ 
      $("#content").html(data); 
     }); 

    }); 
    </script> 

これは何も出力されていませんか?私は非常に迅速に、なぜ私は何も見ていないか分からなかった?

+0

$ .getJSONがオブジェクトではなく、文字列 – noob

答えて

2

クロスドメインAJAXコールには、jsonpが必要です(またはプロキシサーバー側スクリプトを作成する)。限り、リモート・サーバが(私はAmazonがあることだろうと思うだろう)が適切にセットアップされているとして、それはjQueryを使って非常に簡単です:あなたが追加する前にそれを反復処理する必要がありますので、あなたが反応してJSONを取得します

$.ajax({ 
    url  : 'https://s3.amazonaws.com/wallyball_production/comedy.json', 
    dataType : 'jsonp', 
    success : function (data) { 
     //$('#content').html(data); 
     for (var i = 0, len = data.length; i < len; i++) { 
      //`data[i].something` will access the `something` property an index of the JSON returned 
     } 
    } 
}); 

注意それをDOMに渡します。

はここでjQueryの$.ajax()のためのドキュメントです:http://api.jquery.com/jquery.ajax

+0

私はあなた 'SUCCESS'コールバックを見るまで、私はあなたと一緒だったが返されます。レスポンスはHTMLではなくJSONオブジェクトですか? –

+0

@AymanSafadiだからこそ、私は、XtianのコードをJSONの結果を反復するために変更する必要があることに気付きました。 – Jasper

+0

Hmmm、私は何かを得ると思った:console.log( 'data [i] .name'); forループには何もありません。 – Xtian

1

same-origin policyのため、Webアプリケーションは他のドメインのコンテンツと対話できません。

あなたのウェブサーバー(アマゾンに連絡して結果を返す)を介して要求をプロキシするか、JSONPを使用する必要があります。

関連する問題