我正在使用jQuery和PHP使用AJAX進行簡單的註冊頁面。PHP對AJAX請求沒有響應
這裏是爲了使Ajax調用腳本:使用PDO
<?php
require_once 'dbconnect.php';
if($_POST) {
$user_name = $_POST['user_name'];
$user_email = $_POST['user_email'];
$user_password = $_POST['password'];
try {
$sth = $dbh->prepare("SELECT * FROM logindata WHERE email=:email");
$sth->execute(array(":email"=>$user_email));
$count = $sth->rowCount();
if($count==0){
$sth = $dbh->prepare("INSERT INTO logindata(username,email,pass) VALUES(:uname, :email, :pass)");
$sth->bindParam(":uname",$user_name);
$sth->bindParam(":email",$user_email);
$sth->bindParam(":pass",$user_password);
if(!$sth->execute()) {
echo "3";
} else {
echo "2";
}
} else{
echo "1";
}
}
catch(PDOException $e){
echo $e->getMessage();
}
}
?>
:
<script>
function submitForm(){
var data1=$('#regform').serialize();
$.ajax({
type:'POST',
url:'signup.php',
data:data1,
success: function(response){
console.log(response);
if(response==1)
alert('taken');
else if(response==2)
alert('registered');
else
alert(response);
}
});
}
</script>
和響應調用PHP腳本:
signup.php。
dbconnect.php:
<?php
$dbhost='localhost';
$dbuser='root';
$dbpass='';
$dbname='ambitio';
try{
$dbh=new PDO("mysql:host={$dbhost};dbname={$dbname}",$dbuser,$dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
}
?>
問題: 無論是兩個響應都返回到jQuery的AJAX調用。我檢查了console.log()
,但瀏覽器中沒有顯示任何內容。數據存儲在MySQL數據庫中(檢查它),這意味着在PHP中工作正常,但瀏覽器中仍未顯示警報。如果count
評估爲0
,1
確實會返回。
此外,當我沒有實際提交表單時刷新表單時,我在瀏覽器控制檯收到錯誤POST 412 (Precondition Failed)
。
編輯:發表完整的PHP。
EDIT2:Apache的訪問日誌
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/bootstrap.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/overboot.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/css/font-awesome.css HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/js/jquery.js HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [19/Jul/2016:23:51:55 +0530] "GET /ambitio/js/bootstrap.js HTTP/1.1" 304 - "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:36 +0530] "GET /ambitio/signup.html HTTP/1.1" 200 1454 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:46 +0530] "POST /ambitio/signup.html HTTP/1.1" 200 1454 "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
::1 - - [20/Jul/2016:00:43:46 +0530] "POST /ambitio/signup.php HTTP/1.1" 200 1 "http://localhost/ambitio/signup.html" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
EDIT3:表格HTML標記:
<form method="post" id="regform" onSubmit="submitForm()">
<input type="text" placeholder="Username" id="user_name" name="user_name" />
<input type="email" placeholder="Email" id="user_email" name="user_email" />
<input type="password" placeholder="Password" id="password" name="password" />
<input type="password" placeholder="Retype password" id="rpassword" name="rpassword" />
<input type="submit" id="submit"/>
</form>
發表您的所有PHP代碼 – 0x13a
它不是一個asynchoronous電話嗎? – msantos
@ 0x13a更新了問題。 –