0

test.html というページで、jquery ajax によって test2.php というページから JSON データを取得したいと考えています。

次のコードは機能しません

test.html:

$.ajax({ 
    url:"test2.php",
    type:"POST",
    dataType: "json",
    success: function(data){
        alert(data.b.d);
    }
});

test2.php:

<?php
    $c= '{"a":{"d":6994,"e":20003,"f":7968,"g":12505,"h":6814},"b":{"d":10623,"e":3404,"f":405,"g":17066,"h":24219}}';
    echo $c;
?>
4

3 に答える 3

0

リクエストでデータを送信しない場合は、おそらく POST を使用する必要はありません。代わりに GET を使用できます。便利な省略形の方法もあります。

$.get("test2.php", function(data) {
    // handle your data here
}, 'json'); 

あなたはtest2.php物事を難しい方法でやっています。JSON 文字列を構築しようとする代わりに、クライアントに送信するデータ構造を構築するだけです。次に、でエンコードしjson_encode()ます。jQuery がデータのデコード方法を認識できるように、JSON コンテンツ タイプ ヘッダーを送信する必要があります。

$c = array(
    'a'=>array(
        'd' =>6994,
        'e' => 2003,
        'f' => 7968,
     )
    // and so on...
);
header('content-type: application/json');
echo json_encode($c);
于 2012-11-19T15:52:47.583 に答える
0

リクエストが有効なレスポンスを返すかどうか、Firebugチェックなどの JS デバッグ ツールを使用することをお勧めします。

于 2012-11-19T15:35:26.990 に答える
0

test2.php に適切なヘッダーが含まれていません。直後にこれを追加

header('Content-type: application/json');

于 2012-11-19T15:21:39.110 に答える