2013-02-05 66 views
3

我目前在本地主機上運行:JQuery.getJSON不報警JSON

$.getJSON("http://localhost/call", function(json) { 
    alert(json.something); 
}); 

http://localhost/call回報{something:1},但沒有被提醒。

+1

你JSON的反應似乎是無效的。而從jQuery 1.4開始,如果JSON文件包含語法錯誤,請求通常會自動失敗 - http://api.jquery.com/jQuery.getJSON/ – Tom

+1

您應該使用服務器端語言提供的方法將數據結構轉換爲JSON,而不是單獨構建它。 *編輯:* http://php.net/manual/en/function.json-encode.php –

回答

8
{something:1} 

心不是一個有效JSON字符串,但

{"something":1} 

是。

如果更換

$.ajax({ 
    url: 'http://localhost/call', 
    dataType: 'json', 
    success: function(){}, 
    error: function(xhr, textStatus, errorThrown){ 
     //you should get a parse error and end up here 
    } 
}); 

你的電話,你應該在error回調結束。

在你的PHP文件:

header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
header('Content-type: application/json'); 

$arr = array('something' => 1, 'somethingelse' => 2); 

echo json_encode($arr); 
+0

Doggonit,我知道它會是這樣的。 – Babiker

+0

@Babiker嘿嘿,我們都犯錯誤;)你使用什麼服務器端語言? – Johan

+0

告訴我一下,PHP。 – Babiker