在PHP中处理Axios的POST请求

22

我想发送一个POST请求到我的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 } 中的 text 和 unk 有数据,请问您的 API 端点是否正确? - David
$_POST是一个数组,echo无法工作,请尝试使用print_r($_POST)。 - Shahaf Antwarg
@David 可能我的端点不正确,但如何在 PHP 中处理 Axios 发布的 JSON 对象?我不知道如何在 PHP 中访问它。 - Laurens Mäkel
3
你的问题需要编辑,这是你的 PHP 代码的问题,而不是 React 或 Axios 的问题。 - STEEL
2个回答

17

用户通过在php://input中"查找"对象来解决了它。

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

正如STEEL所指出的那样,这是PHP代码的问题,与React或Axios无关。


这是正确的..谢谢 - Biskrem Muhammad

-7

只需要:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接