【问题标题】:IP Lookup in PHP from JavaScript returning undefined从 JavaScript 返回未定义的 PHP 中的 IP 查找
【发布时间】:2014-09-10 14:09:37
【问题描述】:

我正在尝试通过调用我自己的服务器从 script.js 执行 iplookup,但返回的只是“未定义”。为什么?

iplookup.php

<?php
    header('content-type: application/json; charset=utf-8');
    $data = json_encode($_SERVER['REMOTE_ADDR']);
    //next line needs to be commented out
    //echo $_GET['callback'] . '(' . $data . ');';
?>

script.js

//get ipaddress
$.ajax({
    url: "http://www.example.com/iplookup.php",
    data: null,
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp'

}).done(function (json) {
    self.ip = json;
});
//on the next line it returns `undefined`  
console.log('ipaddress: ' + self.ip);

【问题讨论】:

  • 因为您没有在 PHP 中回显任何内容。
  • 为什么是jsonp?它究竟在哪里返回undefined
  • 当您尝试回显时,$data 的响应是什么?

标签: php json undefined ip-address lookup


【解决方案1】:

您还需要回显响应。现在您正在做的是设置标头,将 $_SERVER['REMOTE_ADDR'] 编码为 $data 变量,但您不会将其回显。所以你的 javascript ajax 请求只得到一个空响应。

这样做:

<?php

header("Content-type: application/json");
print json_encode($_SERVER['REMOTE_ADDR']);

?>

【讨论】:

    猜你喜欢
    • 2016-01-05
    • 2020-06-21
    • 1970-01-01
    • 2015-06-08
    • 2022-01-08
    • 1970-01-01
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多