2013-02-05 55 views
1

PHP用小JSON和PHP努力獲得IP

<?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我檢查了消防錯誤,它說以下

GET http://domain.com/json/ 200 OK 81ms

而且沒有迴應機智h我要求的知識產權。我錯過了什麼嗎?

更新的代碼

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

如果您在不同的域上訪問JSON,[您可能需要使用JSON-P](http://stackoverflow.com/q/2681466/901048)。 AJAX請求通常只能與發出請求的頁面進入相同的域。 – Blazemonger

+0

是不是叫'id'的字段? –

+0

'console.log(data)' – deceze

回答

5

您正在返回:

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

但是你對待它,如果你正在返回:

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

您可能需要你的JavaScript更改爲console.log(data[0].ip)或改變你的PHP來:$results = array(...);而比$results[] = array(...);

要麼解決您的問題。 :)

+0

即時得到SyntaxError:無效的標籤指向「ip」的返回 – ngplayground

+0

您還需要刪除額外的'});'在您的代碼中...' – Dan

+0

已完成。仍然是相同的錯誤 – ngplayground