为什么die()函数不起作用?

jmj*_*y27 0 javascript php ajax die

我有一个ajax调用,它将表单中的数据发送到php文件,然后将该数据插入到数据库中.我打电话给die所说的php文件,因为我想尝试一些东西,但它不起作用.

addUserForm.php

<script>
    $(document).ready(function () {
        var $form = $('form');
        $form.submit(function (event) {
            event.preventDefault();

            var formData = $form.serialize(),
                url = $form.attr('action');

            $.ajax({
                type: "POST",
                url: url,
                data: formData,
                success: function () {
                    //$("#div1").load("table.php");
                    alert('User Successfully Added');
                    document.getElementById("form1").reset();
                }
            });
        });
    });
</script> 
Run Code Online (Sandbox Code Playgroud)

这是php文件:

addUser.php

<?php
    include('sqlconnection.php');
    die('here');
    $firstname = $_POST['fname'];
    $lastname = $_POST['lname'];
    $middlename = $_POST['mname'];
    $password = $_POST['pword'];
    $username = $_POST['uname'];
    $gender = $_POST['gender'];
    $utype = $_POST['utype'];

    $query = "INSERT INTO user (firstname,lastname,middlename,gender) VALUES ('$firstname','$lastname','$middlename','$gender')";   

    mysqli_query($con,$query);

    $result = mysqli_query($con,"SELECT id FROM user WHERE firstname = '$firstname'");

    $row = mysqli_fetch_assoc($result);

    $uid=$row['id'];

    $result = mysqli_query($con,"INSERT INTO accounts (u_id,username,password,account_type) VALUES ('$uid','$username',md5('$password'),'$utype');");

?>
Run Code Online (Sandbox Code Playgroud)

即使有die呼叫,adduser.php仍然会警告用户已成功添加.

kni*_*ttl 6

那是因为die()只有终止/结束PHP脚本.从AJAX的角度来看,请求是成功的.

您应该在PHP页面中回显信息,然后在AJAX中输出响应的内容.

您还可以将PHP脚本中的响应标头设置为200/OK以外的其他标头,例如401/Unauthorized或400/Bad Request.基本上所有400和500状态代码都表示错误.