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之前的第一个引号。
答案 0 :(得分:5)
你要回来了:
[{'ip': 'XXX.XXX.XXX.XXX'}]
但是你把它视为回归:
{'ip': 'XXX.XXX.XXX.XXX'}
您需要将JavaScript更改为console.log(data[0].ip)
或将PHP更改为:$results = array( ... );
而不是$results[] = array( ... );
要么解决你的问题。 :)