从PHP登录请求获取空的AJAX响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从PHP登录请求获取空的AJAX响应相关的知识,希望对你有一定的参考价值。

我有以下php代码,它自己工作。但是,在使用AJAX时,它会返回一个空响应。

PHP登录代码:

<?php
session_start();
include_once  'resources/database.php';

if(isset($_POST['m_login_signin_submit'])) {
    $email = trim($_POST['email']);
    $user_password = trim($_POST['password']);

    $password = MD5($user_password);

    try {
        $stmt = $db->prepare("SELECT * FROM users WHERE email=:email");
        $stmt->execute(array(':email' => $email));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);
        $count = $stmt->rowCount();
            if($row['password']==$password) {
                echo '1';
                $_SESSION['user_session'] = $row['id'];
            } else {
                echo 'You do not matter.';
            }
    } catch (PDOException $ex) {
        echo $ex->getMessage();
    }
}

AJAX代码:

$(document).ready(function () {
/* validation */
$("#login-form").validate({
    submitHandler: submitForm
});
function submitForm() {
    var email = $('#email').val();
    var password = $('#password').val();
    console.log(data);
    $.ajax({
        type: 'POST',
        dataType: 'text',
        url: 'partials/processLogin.php',
        data: {
            email:email,
            password:password
        },
        success: function (response) {
            console.log("Checking success.");
            console.log(response);
        },
        error: function () {
            console.log("error");
        }
    });
    return false;
}

});

在控制台中,所有值都正确传递并返回成功但值为空。任何帮助是极大的赞赏。

谢谢

答案

你没有在你的请求中传递任何m_login_signin_submit,因此你永远不会进入你的主要if语句。我猜这是表单的提交按钮,但由于这是ajax,除非你明确地这样做,否则它不会被发送。

    data: {
        email:email,
        password:password,
        m_login_signin_submit: 1
    },

以上是关于从PHP登录请求获取空的AJAX响应的主要内容,如果未能解决你的问题,请参考以下文章

Ajax请求从PHP获得不同的响应值

Symfony 5 / 请求响应:使用 Ajax 获取数据

使用 AJAX 从 PHP 文件中获取响应

Ajax+PHP打造等待进度条效果

thinkphp怎样获取ajax请求数据

不想等到服务器响应 AJAX 请求