php - 努力用一个小的json和php来获取IP

标签 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 之前的第一个引号。

最佳答案

您要返回:

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

但你把它当作你正在返回:

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

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

两者都可以解决您的问题。 :)

关于php - 努力用一个小的json和php来获取IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14711762/

相关文章:

PHP - 如果文件存在,则将数据写入新文件,并在 foreach 循环中调用生成文件的每一行

仅用于字母和数字的 Javascript 测试字符串

javascript - 如何通过 Json 将 Java 方法调用到 JavaScript 中?

javascript - 可以通过键获取 JSON 中的一些值,其他的我无法获取

JsonSerializer 结构与 asp-net 核心 3.0

php - 如何在 PHP 中提取通过 Python 发送的 gzip POST 请求

php - 从包含文件返回

javascript - 在 JQuery Listview 之后填充

php - MongoDB查询日期

jquery - 如何为网格中的图像添加内部阴影?