繁体   English   中英

无法 POST 成功的 ajax 请求

[英]cannot POST successful ajax request

我的存储库中有 2 个文件,我想将 index.php 中的 js 变量传递给 php 脚本 validate.php。 我的存储库的结构:

  • 索引/索引。 php
  • pdf/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM