在 PHP 中处理 Axios POST [重复]

Posted

技术标签:

【中文标题】在 PHP 中处理 Axios POST [重复]【英文标题】:process Axios POST in PHP [duplicate] 【发布时间】:2017-10-03 05:46:45 【问题描述】:

我想向我的 php 文件发送一个 POST 请求来处理它并将数据存储在数据库中。我非常坚持,因为无论我尝试什么,$_POST 都保持为空。

有人可以帮我发送一个帖子请求并帮助我如何处理它吗?

我的 axios 请求:

// Performing a POST request
axios.post('dev/api/post.php', text: text, unk: unk)
  .then(function(response)
      console.log(response);
).catch(function (error) 
      console.log(error);
);  

这是我在 PHP 中尝试过的,有些代码被注释掉了,因为不确定它是否有效..

if(isset($_POST) && !empty($_POST))
/*  
$jsonReceiveData = json_encode($_POST);
$json_output = json_decode($jsonReceiveData);
$task = $json_ouput->text;
$uniquekey = $json_output->unk;
*/
echo $_POST;
/*
$stmt = $pdo->prepare("INSERT INTO todo (id, tekst, uniquekey) VALUES ('', :tekst, :unk)");
$stmt->bindParam(':unk', '1');
$stmt->bindParam(':tekst','testing');
$stmt->execute();
*/

解决方案:

$data = json_decode(file_get_contents("php://input"), true);
$task = $data['text'];

在 php://input 中找到对象

【问题讨论】:

您的 axios 请求语法似乎正确,假设 text: text, unk: unk tetxt 和 unk 中有数据,您的 api 端点是否正确? $_POST 是一个数组,echo 不起作用,尝试 print_r($_POST) @David 可能我的端点不正确,但是如何处理 Axios 发布的 PHP 中的 JSON 对象?我不知道如何在 PHP 中访问它 您的问题需要编辑,这是您的 PHP 代码中的问题,而不是 React 或 Axios 【参考方案1】:

用户解决了它在 php://input 中“找到”对象

$data = json_decode(file_get_contents("php://input"), true);
$task = $data['text'];

正如 STEEL 所指出的,这是 PHP 代码的问题,而不是 React 或 Axios。

【讨论】:

这是正确的..thnx【参考方案2】:

只需要:

if(isset($_POST['text']))  ... 

【讨论】:

以上是关于在 PHP 中处理 Axios POST [重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法在 php if 语句中处理 axios.post vuejs 正文数据

PHP文件没有从axios post接收变量

PHP API不保留会话[重复]

axios POST上的PHP Post数组为空

Vue JS Axios Post 请求向 PHP 发送 Null

Axios POST状态400错误请求[重复]