我正在使用ajax请求到php脚本以注册新用户,它可以工作并将其保存在数据库中,但是返回错误而不是成功。
这是我的ajax请求:
$.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
crossDomain: true,
cache: false,
success: function (data) {
if (data == 1)
alert("success");
else(data == 0 )
alert("error");
},
error: function (){
alert("An Error Ocurred");
}
});
这是我的php脚本:
if($_POST)
{
$user_name = $_POST['username'];
$user_password = $_POST['password'];
$joining_date = date('Y-m-d H:i:s');
//password_hash see : http://www.php.net/manual/en/function.password-hash.php
$password = password_hash( $user_password, PASSWORD_BCRYPT, array('cost' => 11));
//if($count==0){
$stmt = $db_con->prepare("INSERT INTO users(username,password,joiningdate) VALUES(:uname,:pass,:jdate)");
$stmt->bindParam(":uname",$user_name);
$stmt->bindParam(":pass",$user_password);
$stmt->bindParam(":jdate",$joining_date);
if($stmt->execute())
{
echo 1;
}
else
{
echo 0;
}
}
答案 0 :(得分:0)
用else替换else(data == 0)
$.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
crossDomain: true,
cache: false,
success: function (data) {
if (data == 1)
alert("success");
else
alert("error");
},
error: function (){
alert("An Error Ocurred");
}
});
和PHP代码
if($stmt->execute())
{
exit(1);
}
else
{
exit(0);
}
答案 1 :(得分:0)
您可以在JSON中解析PHP响应,以便从JS检查结果。
PHP响应:
if ($stmt->execute()) {
die(json_encode(['return' => true]));
} else {
die(json_encode(['return' => false]));
}
从JS中,只需检查return
标志:
$.ajax({
type: "POST",
url: "http://localhost/webAPI/register.php",
data: dataString,
dataType: 'JSON', // tell JS that the PHP response is json formated
crossDomain: true,
cache: false,
success: function (data) {
if (data.return) { // check if return is true
alert("success");
} else { // if return is false
alert("error");
}
},
error: function (jqXHR, textStatus, errorThrown){
console.log(textStatus, errorThrown); // this will tell you more in case of unsuccessful request
}
});
希望它有所帮助。
查看Ajax error
属性函数。它必须告诉你更多关于错误的信息。
您发送给PHP的dataString
必须是JSON对象。所以从你的评论来看,它必须如下:
var dataString = {
username: $("#username").val(),
password: $("#password").val()
};
答案 2 :(得分:0)
关于我几天前提到的关于ajax的问题,我发现如果我从html文件中删除了form标签,它就可以完美地运行,并返回回调函数。谢谢大家努力帮助