2013-10-31 30 views
0

我從一個GET返回以下消息JSON值:不能檢索在JavaScript

{"status":"success"} 

我的代碼看起來是這樣的:

$.get(url, function(result) { 
     console.log(result)     
     console.log(result['status']) 
      console.log(result.status)   
     return false; 
    }); 

此打印如下:

{"status":"success"} 
undefined 
undefined 

我在做什麼錯了?

回答

0

您的JSON可能沒有提供正確的HTTP標頭,將其標識爲JSON(您可以在瀏覽器的開發工具的「網絡」選項卡中檢查標頭),它可能未被解析。嘗試

console.log(JSON.parse(result)['status']) 

或設置datatype"json"

如果您管理服務器,您應該修復標題。

0

大概:您正在爲錯誤的Content-Type標頭提供JSON,因此jQuery沒有通過JSON解析器傳遞它。

確保網址在標題中返回Content-Type: application/json

1

如果您的console.log顯示"{"status":"success"}",那意味着您的JSON未被解析。你需要告訴jQuery來爲你做的:

$.get(url, function(result) { 
    console.log(result);  
    console.log(result['status']); 
    console.log(result.status); 
}, 'json'); 

或者,更好:

$.getJSON(url, function(result) { 
    console.log(result);  
    console.log(result['status']); 
    console.log(result.status); 
}); 
1

您必須指定你希望接收JSON數據。這又是在jQuery.get功能

$.get(url, function(result) { 
    console.log(result)     
    console.log(result['status']) 
     console.log(result.status)   
    return false; 
}, 'json'); // <---- HERE 

沒有另一個參數,你result被視爲一個字符串。