使用axios的react.js将数据发布到php,但是php echo空 [英] react.js using axios to post data to php, but php echo empty
本文介绍了使用axios的react.js将数据发布到php,但是php echo空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用react.js,axios和PHP将数据发布到MySQL数据库
I am using react.js, axios, and PHP to post data to MySQL database
这是我的react.js代码
This is my react.js code
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控制台
And this is my Chrome Console
Connected successfully yayayathe post after this[]
我不知道为什么我的PHP获取空数据并回显空值.
I don't know why my PHP get empty data and echo empty value.
推荐答案
根据 axios文档
默认情况下,axios将JavaScript对象序列化为JSON.
By default, axios serializes JavaScript objects to JSON.
一种选择是从您的PHP代码中的正文中读取json :
$entityBody = file_get_contents('php://input');
然后无需将数据包装在FormData
中,您可以直接将其添加:
Then there's no need to wrap your data in FormData
, you can just add it directly:
axios.post(
'./sendData.php',{
data: {
name: 'jessie',
time: '12:00',
food: 'milk',
nutrition: 'vitaminA'
}
})
另一种选择是在axios中设置Content-type
标头:
Another option is to set the Content-type
header in axios:
axios.post(
'./sendData.php',{
data: data
{
headers: {
'Content-type': 'multipart/form-data'
}
}
})
选项1对我来说似乎更好
Option 1 seems better to me though
这篇关于使用axios的react.js将数据发布到php,但是php echo空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文