Jquery 调用AJAX complete以快速完成
出于某种原因,此代码:Jquery 调用AJAX complete以快速完成,jquery,ajax,Jquery,Ajax,出于某种原因,此代码: $.ajax({ type: "POST", url: "assets/PHP/registreer.php", data: $('form').serialize(), complete: function (data) { console.log(data.responseText); } }) 返回未定义,我想这是因为在触发complete时还没有返回responseText。但为什么不等待呢?我怎样才能让它
$.ajax({
type: "POST",
url: "assets/PHP/registreer.php",
data: $('form').serialize(),
complete: function (data) {
console.log(data.responseText);
}
})
返回未定义,我想这是因为在触发complete时还没有返回responseText。但为什么不等待呢?我怎样才能让它等待
我尝试了很多不同的东西,包括:
编辑:包含PHP文件
<?php
session_start();
$emailPost = $_REQUEST["email"];
$passwordPost = $_REQUEST["password"];
$passwordRetypePost = $_REQUEST["retypepassword"];
$servername = "XXXXXX";
$username = "XXXXX";
$password = "XXXXX";
$dbname = "XXXXXX";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
if ($passwordPost != $passwordRetypePost) {
echo "Paswoorden zijn niet hetzelfde!";
} else {
if (!($stmt = $conn->prepare("SELECT * FROM `Gebruikers` WHERE `Email` =
?"))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
} else {
$stmt->bind_param("s", $emailPost);
$stmt->execute();
$stmt->bind_result($id, $email, $paswoord, $rol);
$stmt->store_result();
if ($stmt->num_rows > 0) {
echo "Email bestaat al!";
} else {
$stmt->close();
$hash = password_hash($passwordPost, PASSWORD_DEFAULT);
if (!($stmt = $conn->prepare("INSERT INTO `Gebruikers`(`Email`, `Paswoord`) VALUES (?,'$hash')"))) {
echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
}
$stmt->bind_param("s", $emailPost);
$stmt->execute();
echo "Gelukt!";
}
}
}
$mysqli->close();
?>
找到了问题!
问题是没有阻止表单的默认设置。所以它在responseText出现之前调用了刷新
代码已编辑为:
$("#login").submit(function (event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "assets/PHP/registreer.php",
data: $('#login').serialize(),
complete: function (data) {
alert(data.responseText);
}
})
});
complete:function(data,textStatus){console.log(“Status:”,textStatus);…
-控制台中有什么?url可能有问题,按照@Igor的建议执行应该有助于确认这一点。您的php文件可能有问题,或者页面上有多个表单。您是否使用了json\u encode()
在您的php文件中?“返回未定义,我想这是因为触发complete时responseText尚未返回”这是不可能的。@JariFlederick“responseText在那里”和“responseText尚未返回”怎么可能同时存在?