0

ページからジェイソンを表示するのに問題があります。

データはそこにありますが、次の行に関係している可能性があると思います:

document.write(fbResults.cats[0].title);

完全な html ソースは次のとおりです。

<!DOCTYPE HTML>
<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script>

    $(document).ready(function() {
        $.getJSON('http://mydomain.com/api/get_cats', function(fbResults) {
            document.write(fbResults.cats[0].title);
        });
    });
</script>

</head>
<body>

</body>
</html>

そして、これが読み取っているデータです。

{"cats":[

{"id":"1","title":"mytitle1","colour":"#EE297C"},
{"id":"2","title":"mytitle2","colour":"#EE412F"},
{"id":"3","title":"mytitle3","colour":"#F5821F"},
{"id":"4","title":"mytitle4","colour":"#00AEEF"},
{"id":"5","title":"mytitle5","colour":"#00B495"},
{"id":"6","title":"mytitle6","colour":"#006476"}

]}

ページに何も表示されていません。

firebug コンソールで次のエラーが発生します。

HTML ドキュメントの文字エンコーディングが宣言されていません。ドキュメントに US-ASCII 範囲外の文字が含まれている場合、一部のブラウザー構成では、ドキュメントが文字化けしてレンダリングされます。ページの文字エンコーディングは、ドキュメントまたは転送プロトコルで宣言する必要があります。

そこにjsonデータの痕跡はありません

私は何をしているの?

4

3 に答える 3

5

ページがロードされた後に document.write を実行しないでください (これは確かにここにあります)。

ページに書き込みたい場合は、HTML を作成して追加する必要があります。document.write を置き換えるだけです:

$('body').append('<p>'+fbResults.cats[0].title+'</p>');

アップデート:

あなたの例は、完全修飾 URL 呼び出しを行います。そのサーバーは、ページを実行しているサーバーとまったく同じですか? そうでない場合、XHR はリクエストを処理します (場合によっては通知しません)。クロスドメインに移動する必要がある場合は、JSONp を使用する必要があります。ネットからデータをプルしているときにこれをローカルで実行しようとすると、壊れます。

于 2012-08-09T20:15:59.190 に答える
0

それは私にとってはうまくいくようですこれをチェックしてください http://jsfiddle.net/TxTCs/1/

于 2012-08-09T20:21:13.850 に答える
0

これを試して

 $.each(fbResults.cats,function(index,item){
    document.write(item.title);       
  });

作業サンプル: http://jsfiddle.net/zWhEE/8/

于 2012-08-09T20:18:46.690 に答える