苦苦挣扎的小json和php获取IP

时间:2013-02-05 16:06:05

标签: php jquery json

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 bug,它说了以下

  

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:invalid label {“ip”:“XXX.XXX.XXX.X”}

箭头指向单词ip之前的第一个引号。

1 个答案:

答案 0 :(得分:5)

你要回来了:

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

但是你把它视为回归:

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

您需要将JavaScript更改为console.log(data[0].ip)或将PHP更改为:$results = array( ... );而不是$results[] = array( ... );

要么解决你的问题。 :)