2016-02-11 47 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响应。