[英]cannot POST successful ajax request
我的存储库中有 2 个文件,我想将 index.php 中的 js 变量传递给 php 脚本 validate.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);
?>
如果我在本地主机中打开 validate.php,我会收到错误消息:注意:未定义的索引:名称。
为什么?
ajax 请求验证成功。php
没那么成功。
您尚未正确格式化数据以供 PHP 解析它。
您应该将带有name
属性的 object 传递给数据。
data: { name },
如果您使用console.log
检查res
而不是name
,您可能会说它当前失败。
如果我在本地主机中打开 validate.php,我会收到错误消息:注意:未定义的索引:名称。
通过在浏览器中键入 URL,您将发出一个新的 GET 请求,该请求与您之前使用 JavaScript 发出的 POST 请求完全无关。
第一个请求的 POST 数据在第二个请求中不存在。
如果您希望数据在请求之间持久存在,那么您需要将其存储在某个地方(例如 session 或数据库)并添加逻辑来区分设置和检索数据(例如,关闭请求是 POST 或 GET)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.