AJAX请求返回200 OK

时间:2016-07-06 14:06:32

标签: php jquery ajax

我有Ajax POST请求。它总是返回200 OK但我没有得到我希望的。我知道有一个json问题,但我无法解决这个问题。这是我的代码:

<script type="text/javascript" src="../js/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("form#formreg").submit(function(){
    if (confirm("Are You Sure Want To Save ?")){
      $.ajax({
        url: "save.php",
        type:"post", 
        contentType: 'application/json; charset=utf-8',
        data:$( ":input" ).serialize(), 
        dataType: "json", 
        success:function(response){
          if(response.status == 1)
           { 
             alert("Save OK !");
           }
           else
           {
             alert("Fail To Save!");
           }
        },
        error: function(xhr){
                alert("An error occurred: " + xhr.status + " " + xhr.statusText);
        }
      });
    }
    return false;
  });
});
</script>
<form method="post" name="formreg" action="" id="formreg">
  <table>
    <tr>
        <td>Name</td>
        <td><input type="text" id="name" name="name" required="required" size="50" maxlength="50"  /></td>
    </tr>
  </table>
  <input type="submit" id="submit" value="Save"/>
</form>

save.php

<?php
  include_once("connect.php");
  $name =   $_POST['name'];
  mysql_query("INSERT INTO visitor(name) VALUES('$name')") or die ("Fail To Add !");
  echo '{"status":"1"}';  
?>

什么是错误的代码,所以我的脚本不起作用,你能帮帮我吗?

1 个答案:

答案 0 :(得分:2)

问题在于:

$name =   $_POST['$name'];

$name替换为name,因为表单中的标识符为“name”。由于您将一个错误的变量传递给查询,因此您的PHP会死亡并返回200的状态,但是之前已经死掉了您的JSON字符串,这就是为什么永远不会返回JSON的原因。 / p>