如何检索由axios post请求发送的php中的变量[重复]

Posted

技术标签:

【中文标题】如何检索由axios post请求发送的php中的变量[重复]【英文标题】:How to retrieve variables in php sent by axios post request [duplicate] 【发布时间】:2018-08-10 17:51:03 【问题描述】:

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

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

在 PHP 文件中,我正在尝试这样的方法来从 axios 中检索 id 变量:

$id = $_POST['id'];

但似乎它什么也没做。

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

【问题讨论】:

$id 为空或返回未定义变量id? 使用$_POST['id'];。你忘了一个'。您还可以通过var_dump($_POST); 来查看您的 $_POST 是否包含您希望收到的参数。 这是重复的。它与 OP 的初始拼写错误(已修复)无关。默认情况下,Axios发送 URL 编码请求,因此不会填充 $_POST。请参阅文档和原始帖子。 @Akintunde007 它显示未定义索引:id 【参考方案1】:

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'];

【讨论】:

谢谢,伙计!这对我来说就像一个魅力。 你救了我的工作,谢谢

以上是关于如何检索由axios post请求发送的php中的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Vue JS Axios Post 请求向 PHP 发送 Null

在 PHP 中处理 Axios POST [重复]

axios如何一次性发送多个网络请求?

axios发送post请求,如何提交表单数据?

axios发送post请求,如何提交表单数据?

如何从 POST 请求中检索 cookie?