1

PHP

<?php
header('Content-type: application/json');
$return['ip'] = $_SERVER['REMOTE_ADDR'];  
$results[] = array(
      'ip' => $return['ip']
   );
echo json_encode($results);
?>

jQuery

$.getJSON("http://domain.com/json/",
        function(data){
            console.log(data.ip);
        });
    });

しかし、jQueryを実行すると、Fireのバグを確認したところ、次のように表示されます。

GET http://domain.com/json/ 200 OK 81ms

そして、私が要求したIPで応答しません。私は何かを逃したことがありますか?

更新されたコード

PHP

<?php
header('Content-type: application/json');
$return['ip'] = $_SERVER['REMOTE_ADDR'];  
$results = array(
      'ip' => $return['ip']
   );
echo json_encode($results);
?>

jQuery

$.getJSON("http://domain.com/json/", function(data){
            console.log(data.ip);
        });

Firebugエラー

SyntaxError:無効なラベル{"ip": "XXX.XXX.XXX.X"}

矢印は、単語ipの直前の最初の引用符を指しています。

4

1 に答える 1

5

あなたは戻ってきています:

[{'ip': 'XXX.XXX.XXX.XXX'}]

しかし、あなたはそれを戻ってきたかのように扱っています:

{'ip': 'XXX.XXX.XXX.XXX'}

JavaScript を次のように変更するか、PHP を次のように変更する必要がありますconsole.log(data[0].ip)$results = array( ... );$results[] = array( ... );

どちらでも問題を解決できます。:)

于 2013-02-05T16:13:18.440 に答える