javascript - 无法 POST 成功的 ajax 请求
问题描述
我的存储库中有 2 个文件,我想将 index.php 中的 js 变量传递给 php 脚本 validate.php。我的存储库的结构:
- 索引/索引。php
- pdf/验证.php
index.php 中的代码:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
The content of the document......
<script type="text/javascript">
var name = "virginia"
//console.log(name)
$.ajax({
url: "../pdf/validate.php",
method: "post",
data: name,
success: function(res) {
console.log(name)
console.log("pass js variable to php: success")
}
});
// open localhost/index.php
// open F12 developer console, you will find 'virginia' was passed to validate.php, because it console-prints "pass js variable to php: success".
</script>
</body>
</html>
ajax 请求成功验证.php。但是,转到 validate.php,我有:
<?php
$var1 = $_POST['name'];
echo($var1);
?>
如果我在 localhost 中打开 validate.php,我会收到错误消息:注意:未定义的索引:名称。
为什么?
解决方案
ajax请求成功验证.php
没那么成功。
您没有正确格式化数据以供 PHP 解析它。
您应该将具有name
属性的对象传递给数据。
data: { name },
如果您检查过res
而不是name
使用console.log
.
如果我在 localhost 中打开 validate.php,我会收到错误消息:注意:未定义的索引:名称。
通过在浏览器中键入 URL,您将发出一个新的GET 请求,该请求与您之前使用 JavaScript 发出的 POST 请求完全无关。
第一个请求的 POST 数据在第二个请求中不存在。
如果您希望数据在请求之间持久存在,那么您需要将其存储在某处(例如会话或数据库)并添加逻辑以区分设置和检索数据(例如,将请求设为 POST 或 GET)。
推荐阅读
- python - Python:在数据框中,通过创建新列将具有重复标识符的行组合起来
- flutter - 如何在颤振发布方法中修复“未处理的异常:用于空值的空检查运算符”
- node.js - nodejs中的dotenv生产模式不起作用
- angular - 我在向 angular td 添加类时遇到问题
- jenkins - Jenkins gitlab group Jobs 无法检测到单个分支
- c# - 如何使用在运行时定义的字段在 C#/EF Core 中构造 where 子句?
- actions-on-google - 如何在我自己的服务器上使用 Google Action Builder
- wso2is - WSO2:访问授权 - OAuth 2.0
- javascript - 赛普拉斯单元测试显示空覆盖对象或找不到任何覆盖信息
- javascript - 如何移动到表单中输入的页面