2016-02-11 52 views
0

我的PHP PHP閱讀這樣的輸出數據:輸出與AJAX

$data['full_feed'] = $sxml; 
$data['other_stuff']= $new; 
echo json_encode($data); 

所以,在我的jQuery,我這樣做。

$.ajax({ 
    url: 'untitled.php', 
    type: 'GET', 
success: function(data) { 
    console.log(data['full_feed']); 
}); 

這回來了未定義。 console.log(data.full_feed)也是如此。我從PHP獲取了一個有效的JSON對象,但錯過了我可以「正確解析」它的方式。

+3

你沒有告訴jquery你期待json回來,所以'data'將是一個普通的字符串。或者使用'.getJSON()',或者包含'dataType:'json'' –

+0

@MarcB哇。不知道我錯過了那一個。那就是訣竅。謝謝。 – jonmrich

回答

0

解析「data」參數,以響應jQuery.parseJSON函數。然後使用parsed.full_feed值。像下面這樣:

$.ajax({ 
    url: 'untitled.php', 
    type: 'GET', 
success: function(data) { 
    data = jQuery.parseJSON(data); 
    console.log(data.full_feed); 
}); 
0

你可以像@ tilz0R說的那樣或者爲你的例子工作,你需要告訴瀏覽器你發送的是一個json響應。因此需要設置內容類型標題,如

header('Content-Type: application/json'); 
echo json_encode($data); 

查看服務器正在返回的是什麼console.log(typeof data)。如果它是一個字符串,你需要解析它。如果它是一個對象,它已經被解析。

你也可以把dataType:'json'放到你的ajax調用中讓jquery知道你除了json響應。