2016-07-06 223 views
-3

我有Ajax POST請求。它總是返回200 OK,但我沒有得到我所希望的。我知道有一個json問題,但我無法解決這個問題。這裏是我的代碼:AJAX請求返回200 OK

<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"}'; 
?> 

什麼是錯的代碼,所以我的腳本不能正常工作,你能幫幫我嗎?

+3

你說有問題,但不要告訴我們問題是什麼。如果請求返回200 OK響應,那麼AJAX代碼很好。如果PHP代碼沒有執行您期望的操作,那麼您需要調試該代碼,而不是JS –

+5

'$ _POST ['name'];' –

+1

_「我沒有得到我希望的。你希望得到什麼?你有什麼? – JLRishe

回答

2

的問題是存在的:

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

更換$namename因爲在表單中的標識符是 '名'。由於您將錯誤變量傳遞給查詢,您的PHP將死亡,並返回狀態200,但已經在之前已經死亡,因此您會回顯JSON字符串,這就是爲什麼JSON永遠不會返回。

+0

我認爲這可能實際上是答案@JayBlanchard單引號'$ var'絕對是一個問題 – RiggsFolly

+0

它可能實際上是@RiggsFolly(因爲上面的評論);-) –

+0

看看html,它不是'name =「 $ name「' –