POST请求不能使用JQuery AJAX工作


POST request not working using JQuery AJAX

我正在尝试使用JQuery AJAX,以允许用户在弹出框的表单中输入信息,然后将信息添加到MySQL数据库。然而,由于某种原因,当我使用JQuery AJAX函数(我已经尝试了$. POST()和$. AJAX())来POST数据时,它没有得到POST。相反,我得到"未定义索引"的错误消息为所有字段,我试图POST(当我去processNewAssignments.php,这是我张贴的URL)。我做错了什么?

当用户点击POST信息时,我的JQuery AJAX函数调用是:
$.ajax({url: "[THIS CONTAINS THE REST OF THE URL]/processNewAssignments.php",
                    type: 'POST',
                    data: {max_grade: maxGradeValue, title: taskNameValue, due: dueDateValue}});

或者我也试过:

$.post("[THIS CONTAINS THE REST OF THE URL]/processNewAssignments.php", 
        {max_grade: maxGradeValue, title: taskNameValue, due: dueDateValue});

我的代码processNewAssignments.php (URL的数据是post)是:

<?php session_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Process Assignments</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<?php 
    $maxgrade = $_POST["max_grade"];
    $title = $_POST["title"];
    $due = $_POST["due"];
    $classID = $_SESSION["classID"];

    echo "hello!";
    echo $title . $classID . $due . $maxgrade;
    require("db.php");
    $query = "INSERT INTO assignments (title, assignmentID, classID, deadline, max_grade) VALUES ('$title', DEFAULT, '$classID', '$due', '$maxgrade')";
    $result = mysql_query($query, $db);
?>

相反,我得到了"未定义索引"的错误消息试图POST(当我去processNewAssignments.php,这是URL我张贴到)。我做错了什么?

如果我理解正确,你正试图通过发送第二个GET请求,即在地址栏中输入URL来找到你发布的变量。

如果确实是这种情况,您应该得到undefined index,因为您没有发布任何内容,因此$_POST数组是未定义的。

要测试您的ajax POST请求,您需要使用开发工具(Chrome上的F12),选择Network选项卡,然后单击所做的POST请求。

在那里您可以看到请求是否成功(200响应代码),以及回复的内容。

您已经指定了5列INSERT into;但只有4个值传递给它:

title, assignmentID, classID, deadline, max_grade

和你的值:

'$title', DEFAULT, '$due', '$maxgrade'