Javascript ajax没有正确读取json php响应

Javascript ajax没有正确读取json php响应,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我做了很多阅读研究,试图弄清楚为什么ajax将json响应解读为未定义的,当然我也尝试了很多解决方案,但不幸的是,它们对我不起作用。如果你们能帮忙,那就太好了 我已经尝试使用data.status和data['status']添加数据类型:“json”,但它们仍然是未定义的。我可以看到php以json格式响应正确的状态(响应示例位于页面底部) php方面: //doing sql query if ($conn->query($sql) === TRUE) { $response_ar

我做了很多阅读研究,试图弄清楚为什么ajax将json响应解读为未定义的,当然我也尝试了很多解决方案,但不幸的是,它们对我不起作用。如果你们能帮忙,那就太好了

我已经尝试使用data.status和data['status']添加数据类型:“json”,但它们仍然是未定义的。我可以看到php以json格式响应正确的状态(响应示例位于页面底部)

php方面:

//doing sql query
if ($conn->query($sql) === TRUE) {
  $response_array["status"] = "success";
} elseif ($conn->errno == 1062) {
  $response_array["status"] = "dup";
} else {
  $response_array["status"] = "error";  
}
header('Content-Type: application/json');
echo json_encode($response_array);
jquery端:

$(document).ready( function(){
    $('#name_form').submit( function(event) {
        if ( !formValidation()) {
            event.preventDefault();
        } else {
            var datastr = $('#addclass_form').serialize();
            $.ajax({
                type: 'POST',
                url: someurl,
                data: datastr,
                success: function(data) {
                    alert(data.status);
                    console.log(data);
                },
                error: function() {
                    alert('php error');
                }
            });
        }
    });
});
html端:

<form id='name_form'>
    <div>
      <b>Class Name</b>
      <input type='text' name='classname' id='classname' placeholder='Enter Class Name'>
    </div>
    <div class='ui-grid-c'>
      <div class='ui-block-a main'><b>Component</b></div>
      <div class='ui-block-b point'><b>Max Point</b></div>
      <div class='ui-block-c per'><b>Percentage</b></div>
    </div>
    <div id='components'>
      <div class='ui-grid-c'>
        <div class='ui-block-a main'><input type='text' name='component0' id='component0' placeholder='Component'></div>
        <div class='ui-block-b point'><input type='number' name='point0' id='point0' placeholder='Max Point'></div>
        <div class='ui-block-c per'><input type='number' name='percentage0' id='percentage0' placeholder='Percentage'></div>
      <div class='ui-block-d rm'><button type='button' class='ui-btn ui-icon-delete ui-shadow ui-corner-all ui-btn-icon-notext' disabled></button></div>
      </div>
    </div>
    <br>
    <input type='hidden' name='compSize' id='compSize'>
    <input type='submit' class='ui-btn ui-btn-b ui-shadow ui-corner-all' value='Create Class'>
  </form>

类名
组成部分
最大点
百分比

console.log的输出(数据):


{“状态”:“成功”}

在响应$.parseJSON()成功时使用此函数:函数(数据){data=$.parseJSON(数据);console.log(data.status);}我收到了一个parseJSON的意外令牌错误,我认为这不起作用,主要是因为数据不是json格式的字符串。从您发布的控制台日志中,您没有返回JSON,但是HTMLyup去掉了所有其他html标记就成功了!感谢@Victormarchuk在响应$.parseJSON()成功时使用此函数:函数(数据){data=$.parseJSON(数据);console.log(数据.status);}我收到了一个parseJSON的意外令牌错误,我认为这不起作用,主要是因为数据不是json格式的字符串。从您发布的控制台日志中,您没有返回JSON,但是HTMLyup去掉了所有其他html标记就成功了!谢谢@VictorMarchuk
<!doctype html>
<html>
  <head>
  </head>
  <body>
    {"status":"success"}
  </body>
</html>