jQuery AJAX调用PHP脚本与JSON返回

我已经用这个砸了我的头对着一堵砖墙,我已经尝试了stackoverflow上的解决scheme的负载,但找不到一个工程!

基本上,当我张贴我的AJAX PHP返回JSON,但AJAX显示未定义,而不是值:

JS

/* attach a submit handler to the form */ $("#group").submit(function(event) { /* stop form from submitting normally */ event.preventDefault(); /*clear result div*/ $("#result").html(''); /* get some values from elements on the page: */ var val = $(this).serialize(); /* Send the data using post and put the results in a div */ $.ajax({ url: "inc/group.ajax.php", type: "post", data: val, datatype: 'json', success: function(data){ $('#result').html(data.status +':' + data.message); $("#result").addClass('msg_notice'); $("#result").fadeIn(1500); }, error:function(){ $("#result").html('There was an error updating the settings'); $("#result").addClass('msg_error'); $("#result").fadeIn(1500); } }); }); 

PHP

  $db = new DbConnector(); $db->connect(); $sql='SELECT grp.group_id, group_name, group_enabled, COUNT('.USER_TBL.'.id) AS users, grp.created, grp.updated ' .'FROM '.GROUP_TBL.' grp ' .'LEFT JOIN members USING(group_id) ' .'WHERE grp.group_id ='.$group_id.' GROUP BY grp.group_id'; $result = $db->query($sql); $row = mysql_fetch_array($result); $users = $row['users']; if(!$users == '0'){ $return["json"] = json_encode($return); echo json_encode(array('status' => 'error','message'=> 'There are users in this group')); }else{ $sql2= 'DELETE FROM '.GROUP_TBL.' WHERE group_id='.$group_id.''; $result = $db->query($sql2); if(!$result){ echo json_encode(array('status' => 'error','message'=> 'The group has not been removed')); }else{ echo json_encode(array('status' => 'success','message'=> 'The group has been removed')); } } 

JSON来自萤火虫的结果

 {"status":"success","message":"success message"} 

AJAX显示为未定义的JSON结果,我不知道为什么。 我试图显示添加dataType='json'datatype='json' 。 我也尝试将其更改为data.statusdata['status'] :尽pipe如此,仍然没有喜悦。

任何帮助将非常感激。

使其dataType而不是datatype

并添加下面的代码在PHP中,因为你的ajax请求期待json,不会接受任何东西,但json。

 header('Content-Type: application/json'); 

正确的JSON和JSONP的内容types

在萤火虫中可见的响应是文本数据。 如果响应是json,请检查响应头的Content-Type以validation。 它应该是dataType:'json' application/json dataType:'json'text/htmldataType:'html'

尝试从服务器发送内容types标题使用此之前,回声

 header('Content-Type: application/json'); 

使用parseJSON jquery方法将string转换为对象

 var objData = jQuery.parseJSON(data); 

现在你可以写代码了

 $('#result').html(objData .status +':' + objData .message); 

我build议你使用:

 var returnedData = JSON.parse(data); 

将JSONstring(如果它只是文本)转换为JavaScript对象。

您的数据types错误,请更改dataType的数据types。