javascript - react.js 使用 axios 将数据发布到 php,但 php 回显为空

标签 javascript php ajax reactjs axios

我正在使用 react.js、axios 和 PHP 将数据发布到 MySQL 数据库

这是我的 react.js 代码

sendData(){
var data = new FormData();
data.append('name', 'jessie');
data.append('time', '12:00');
data.append('food', 'milk');
data.append('nutrition', 'vitaminA');
axios.post(
'./sendData.php',{
  data: data

})
.then(response => {
console.log(response)
console.log(response.data)
this.filter = response.data
})
.catch(e => {
this.errors.push(e)
})
}

这是我的 PHP 代码

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "mydb";


$conn = new mysqli($servername, $username, $password, $database);


if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully yayaya";
echo "the post after this";
echo json_encode($_POST);

?>

这是我的 Chrome 控制台

Connected successfully yayayathe post after this[]

我不知道为什么我的 PHP 得到空数据并回显空值。

最佳答案

根据axios docs

By default, axios serializes JavaScript objects to JSON.

一个选项是 read json from the body in your PHP code :

$entityBody = file_get_contents('php://input');

那你的数据就不用在FormData中包装了,直接添加就可以了:

axios.post(
'./sendData.php',{
  data: {
    name: 'jessie',
    time: '12:00',
    food: 'milk',
    nutrition: 'vitaminA'
  }
})

另一种选择是在 axios 中设置 Content-type header :

axios.post(
  './sendData.php',{
  data: data
  {
    headers: {
      'Content-type': 'multipart/form-data'
    }
  }
})

虽然我觉得选项 1 更好

关于javascript - react.js 使用 axios 将数据发布到 php,但 php 回显为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274928/

相关文章:

ajax - XMLHttpRequest.addEventListener 与 XMLHttpRequest.upload.addEventListener

javascript - JS 中 getElementById 的替代选项?

javascript - 最大宽度/高度 Canvas 滚动条干扰?

javascript - 两个坐标之间带有箭头的动画线 Google Maps Javascript

PHP fatal error : Class 'Crypt_RSA' not found

javascript - AJAX初学者: If then statement

javascript - 遍历 List 元素以构建一个数组以在 AJAX 请求中传递

javascript - BluebirdJS promise jQuery 无法正常工作

php - 如何在 PHP 中替换部分字符串?

php - CKFinder 3(不适用于 CKEditor)如何在选择或上传图像时强制用户进入具有特定尺寸的图像编辑区域