AJAX 请求有效负载未显示在控制台日志中



我正在学习 AJAX,我正在尝试在控制台中记录所有数据参数,以防成功和引发警报失败。我的代码可以工作,我可以成功转储我发送的数据,但控制台中没有任何显示,即使我明确地将控制台.log放在 Javascript 中以注册它。 这是我的代码。 网页

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h2>Send JSON</h2>
<form action="postrequest.php" class="js-ajax-php-json" method="post" accept-charset="utf-8">
<input type="text" name="param1"/>
<input type="text" name="param2"/>
<input type="text" name="param3"/>
<button type="submit">Submit</button>
</form>

</body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
$("document").ready(function(){
$(".js-ajax-php-json").submit(function(){
var param1 = $("#param1").val();
var param2 = $("#param2").val();
var param3 = $("#param3").val();
$.ajax({
url : 'postrequest.php',
contentType: "application/json",
dataType: "json",  
type : 'POST',
data: JSON.stringify({ 
param1: param1,
param2: param2,
param3: param3
}),
success: function(data) {
console.log(data);
},
error: function (data) {
alert(data.param3);
}       
});
});
});
</script>
</html>

后请求.php

<?php 
var_dump( $_POST);

我做错了什么?

错误 1:删除表单标记。它将起作用,因为它包含action="postrequest.php"。你同时在做两件事。

  1. 使用表单标签通过 PHP 提交表单。
  2. 您正在执行 ajax 并提交表单。

错误 2:您正在编写var param1 = $("#param1").val();您定义的参数 1、参数 2、参数 3 在哪里?

错误 3:您正在提供 jquery 链接,但您没有关闭脚本标记。

错误 4:您正在 ajax 中发送data,并使用相同的变量再次输出 ajax 响应

错误5:您创建的Ajax错误块是错误的。

<!DOCTYPE html>
<html>
<body>
<input type="text" name="param1" id="param1"/>
<input type="text" name="param2" id="param2"/>
<input type="text" name="param3" id="param3"/>
<input type="button" value='Submit' class="js-ajax-php-json" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".js-ajax-php-json").click(function() {
var param1 = $("#param1").val();
var param2 = $("#param2").val();
var param3 = $("#param3").val();
$.ajax({
url: 'postrequest.php',
dataType: "html",
type: 'post',
data: {
param1: param1,
param2: param2,
param3: param3
},
success: function(rsp) {
console.log(rsp);
},
error: function(jqXHR, status, err) {
console.log("Error");
},
});
});
});
</script>
</body>
</html>

后请求.php页面

<?php
print_r($_POST);
?>

我刚刚用一个非常简单的代码重写了你的代码。您可以 根据您的要求进行更改。

我认为根本原因是一旦您点击提交,页面就会重新加载。因此,您无法在控制台中看到任何内容。请尝试以下步骤。

  1. 从表单标记中删除"操作"和"方法"属性。这已经在 ajax 请求中处理了。
  2. 将 onsubmit="return false;" 属性添加到表单标签中。这将阻止重新加载页面。

最新更新