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尚未返回”怎么可能同时存在?