【发布时间】:2020-06-14 15:16:03
【问题描述】:
我正在尝试将一些 Ajax 数据发布到我的 PHP 应用程序(使用 XAMPP),但无法弄清楚为什么我不能在服务器端(在浏览器中)“回显”该值。
我有我的客户端:localhost:8080/test/test.html,看起来像这样:
<script>
$.ajax({
url: "welcome.php",
type: "POST",
data: {name:"Jay"},
success: function (result) {
console.log("success");
window.location = "welcome.php";
}
});
</script>
我在http://localhost:8080/test/welcome.php 上也有我的 PHP 脚本:
<?php
if(isset($_POST["name"]))
echo $_POST["name"];
else
echo "something went wrong";
?>
似乎$_POST["name"] 未定义,因为else 已执行。但它不应该呼应'Jay'吗?
我查看了类似的 stackoverflow 问题/答案,但我似乎无法弄清楚出了什么问题。我已将 $_POST 更改为 $_REQUEST,我已将 echo 更改为 print_r,甚至更改为 var_dump。似乎没有任何效果。我添加了数据类型:'json',输入内容类型,将 json 键更改为字符串等。
当我在执行 test.html 后查看 Chrome 的“开发工具”时,我可以在“网络”选项卡中看到带有 name:jay 的表单数据。所以我不确定是怎么回事....
任何帮助都会非常感激。
谢谢:)
【问题讨论】:
-
你似乎很困惑。您需要使用
result做一些事情,而不仅仅是重定向(这是一个 GET 请求)到同一页面。 -
在您的成功回调中尝试 console.log(result) 并查看您的控制台,您应该会在那里看到名称。 window.location 使您的浏览器将窗口位置(即地址栏中的 url)更改为指定的位置,这不是您想要做的。
-
您是如何确切确定给定数据尚未提交的?
-
关于 AJAX 的整个想法是您不会离开页面,而是刷新您已经在页面上的部分。如果您确实需要离开页面,请使用
GET变量。您的值丢失的原因是因为您的 AJAX 函数发送了POST变量,然后当它完成后,您转到您的页面,导致刷新,现在您的值丢失了。