我正试图通过调用自己的服务器从script.js进行iplookup,但返回的都是"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);
您还需要回显响应。现在,您正在做的是设置头,将$_SERVER['REMOTE_ADDR']编码为$data变量,但您无法将其回声输出。因此,您的javascript ajax请求只得到一个空响应。
这样做:
<?php
header("Content-type: application/json");
print json_encode($_SERVER['REMOTE_ADDR']);
?>