javascript - 如何在axios post请求发送的php中检索变量

标签 javascript php ajax vue.js axios

<分区>

我想向 PHP 脚本发送 POST 请求。我正在使用 Axios:

axios.post('inc/vote.php', {
    id: this.selected,
}) .then(function (response) {
    console.log(response);
});

在 PHP 文件中,我尝试这样从 axios 中检索该 id 变量:

$id = $_POST['id'];

但似乎它什么也没做。

从请求中检索变量的正确方法是什么?

最佳答案

Axios 在请求正文中以 JSON 的形式发送数据,而不是作为表单数据。因此,您无法使用 $_POST['id'] 访问发布数据。

前端解决方案

要能够使用 $_POST['id'] 访问数据,您必须按以下方式使用 FormData:

var form = new FormData();
form.append('id', this.selected);
axios.post('inc/vote.php', {
    form
  }) .then(function (response) {
    console.log(response);
  });

后端解决方案 如果您有兴趣将请求主体作为关联数组获取,您可以使用:

$data = json_decode(file_get_contents("php://input"), TRUE);
$id = $data['id'];

关于javascript - 如何在axios post请求发送的php中检索变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49070403/

相关文章:

javascript - jquery for 循环有两种不同索引的方法

php - 错误登录后的基本身份验证重定向

php - 两个 SQL 查询,只有第一个返回结果

php - 为什么换行符在php代码中不起作用

javascript - 如何从表单接收信息并使用 jQuery 和 AJAX 提交

javascript - jQuery 中的 AJAX 获取函数

javascript - 在 event.preventDefault 之后显示 HTML5 客户端验证错误气泡

javascript - Angularjs $location.path() 无法定位到当前路由器

javascript - 我应该如何在 AngularJS 中制作可配置模块

php - setTimeout 无法与 jQuery 和 load() 一起正常工作