$ .ajax()不起作用[jquery]

Hey I've seen all the solutions here on StackOverflow on the topic but they seem to not work, I don't know why. I've this code inside the $(form).submit(function(e){...}); event handler.

        e.preventDefault();
        let formData = new FormData();
        formData.append('username', username.value);
        formData.append('password', password.value);
        
        $.ajax({
            url: 'login.php',
            type: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function(response) {
                console.log(response);
            },
            error: function() {
                console.log('fail');
            }
        })

By the look of things, I think the login.php is receiving the formData value because when I submit the form nothing happens.

This is the login.php

<?php
    session_start();
    $password = $username = '';
    $_SESSION['user'] = '';


    if($_SERVER['REQUEST_METHOD'] == 'POST') {
        if(isset($_POST['login'])) {
            include_once('db.php');
            $username = strip_tags($_POST['username']);
            $passd = strip_tags($_POST['password']);

            $passd = md5($password);

            $sql = "select * from users where username = '" . $username . "' limit 1";
            $query = mysql_query($sql);

            if($query) {
                $row = mysql_fetch_assoc($query);
                $dbpass = $row['password'];
                if($password == $dbpass) {;
                    $_SESSION['user'] = $username;
                    header('Location: admin.php');
                } else {
                    echo 'Wrong username or password!';
                }
            } else {
                echo mysql_error();
            }
        }
    }
?>

How do I make this work? Thank you in advance.

</div>

remove

let formData = new FormData();
formData.append('username', username.value);
formData.append('password', password.value);

and replace

data: formData,

with :

data: {username: username.value, password: password.value}

Since you already have a form, you can serialize() and send data this way:

e.preventDefault();
var paramsToSend = {};
paramsToSend['formData'] = $('form').serialize();

$.ajax({
  url: 'login.php',
  type: 'POST',
  data: {params:JSON.stringify(paramsToSend)},
  contentType: false,
  success: function(response) {
    console.log(response);
  },
  error: function() {
    console.log('fail');
  }
})

In your server-side, you can:

$parameters = json_decode($_POST['params']);

FormData object works perfectly here. Here I used dataType='json' in ajax opts indicating that ajax expects json data from server side.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
function _submit(){
    let formData = new FormData();
    formData.append('username', 'atauruser'); //you can set your expected username
    formData.append('password', 'ataurpass'); //you can set your expected password.
    
    $.ajax({
        url: 'login.php',
        type: 'POST',
        data: formData,
        dataType:'json',
        processData: false,
        contentType: false,
        success: function(response) {
            console.log(response);
            $('#response').html(response);
        },
        error: function() {
            console.log('fail');
        }
    });
}
</script>

<button class="b" id="n" onclick="_submit()">Send Data</button>

<div id="display"></div>
<p id="response"></p>
</body>

And your server side code simply login.php

<?php
    $incoming = array ($_POST['username'],$_POST['password']);
    echo json_encode($incoming);
?>
</div>