POST 请求无法使用 JQuery AJAX
Posted
技术标签:
【中文标题】POST 请求无法使用 JQuery AJAX【英文标题】:POST request not working using JQuery AJAX 【发布时间】:2013-04-30 19:54:55 【问题描述】:我正在尝试使用 JQuery AJAX 允许用户将信息输入到弹出框中的表单中,然后将信息添加到 mysql 数据库中。 但是,由于某种原因,当我使用 JQuery AJAX 函数(我已经尝试过 $.post() 和 $.ajax())来发布数据时,它不会被发布。相反,对于我尝试发布的所有字段,我都会收到“未定义索引”的错误消息(当我转到 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)是:
<?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);
?>
【问题讨论】:
Please, don't usemysql_*
functions 在新代码中。它们不再被维护并且是officially deprecated。看到红框了吗?改为了解准备好的语句,并使用pdo 或mysqli。
【参考方案1】:
相反,我收到所有字段的“未定义索引”错误消息 试图发布(当我去 processNewAssignments.php,这是 我要发布到的 URL)。我做错了什么?
如果我理解正确,您正试图通过发送 第二个 GET 请求 来查找您发布的变量,即在地址栏中输入 URL。
如果确实如此,您应该得到undefined index
,因为您没有发布任何内容,因此$_POST
数组未定义。
要测试您的 ajax POST 请求,您需要使用开发工具(Chrome 上的 F12),选择 Network
选项卡,然后单击发出的请求。
在那里您可以看到请求是否成功(200 响应代码),以及什么是 响应的内容。
【讨论】:
这很有道理!!谢谢! 我还建议使用$_REQUEST
而不是$_POST
或$_GET
@user1516849【参考方案2】:
您已指定要 INSERT 插入 5 列;但只有 4 个值传递给它:
title, assignmentID, classID, deadline, max_grade
和你的价值观:
'$title', DEFAULT, '$due', '$maxgrade'
【讨论】:
以上是关于POST 请求无法使用 JQuery AJAX的主要内容,如果未能解决你的问题,请参考以下文章
将 jquery ajax POST 请求更改为 fetch api POST