2014-09-10 96 views
-2

我试图通过调用我自己的服务器从script.js做iplookup,但所有返回的是'undefined'。为什么?从PHP返回undefined的IP查找返回undefined

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); 
+0

因为你不是在你的PHP呼应任何东西了。 – 2014-09-10 14:13:25

+0

为什么'jsonp'?它究竟在哪里返回'undefined'? – deceze 2014-09-10 14:13:28

+0

当您尝试回显它时,$ data的响应是什么? – 2014-09-10 14:13:49

回答

1

您需要呼应反应出也。现在你在做什么,是你设置头文件,编码$ _SERVER ['REMOTE_ADDR']到$ data变量,但是你的neber将它回显出来。所以你的javascript ajax请求只能得到一个空的响应。

做像这样:

<?php 

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

?>