Reactjs 无法在react中发出Axios POST请求

Reactjs 无法在react中发出Axios POST请求,reactjs,axios,Reactjs,Axios,我无法使用react中的axios发出post请求,而我正在向我的php服务器发出post请求,并希望在通过post请求获取的mysql中插入数据。 这是我的密码 const url = "http://localhost:80/react-backenda/"; const axios = require('axios'); axios.post(url, { SendBy: 'username', Sendto: 'got_name', Msg: 'in

我无法使用
react
中的
axios
发出post请求,而我正在向我的php服务器发出post请求,并希望在通过post请求获取的mysql中插入数据。 这是我的密码

const url = "http://localhost:80/react-backenda/";
const axios = require('axios');
axios.post(url, { 
  SendBy: 'username', 
  Sendto: 'got_name', 
  Msg: 'input'
})
.then(res=> console.log(res.data))
.catch(err => console.log(err));
我在我的控制台中得到这个:

Notice: Undefined index: Msg in C:\xampp\htdocs\react-backenda\index.php on line 10

Notice: Undefined index: Sendby in C:\xampp\htdocs\react-backenda\index.php on line 11

Notice: Undefined index: Sendto in C:\xampp\htdocs\react-backenda\index.php on line 12
done
这是我的php脚本:

    <?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "msg-clone";
$conn = mysqli_connect($servername, $username, $password, $database);
if(!$conn){
    die("could not connect to server!");
}
$recText = $_POST['Msg'];
$sendby = $_POST['Sendby'];
$sendto = $_POST['Sendto'];
     echo $recText;
     $sql = "INSERT INTO `messages` (`id`, `text`, `sendby`, `sendto`, `time`) VALUES (NULL, '$recText', '$sendby', '$sendto', current_timestamp());";
     $res = mysqli_query($conn, $sql);
     if ($res){
         echo "done";
     }else {
         echo "err";
     }
?>
默认情况下,Axios。这意味着您必须在PHP后端以JSON的形式接收它,或者配置axios实例以
表单数据的形式发送它,就像浏览器在简单表单上所做的那样

要在PHP上以JSON的形式接收它,您可以这样做:

$data = json_decode(file_get_contents('php://input'), true);

$recText = $data['Msg'];
$sendby = $data['Sendby'];
$sendto = $data['Sendto'];
var formData = new FormData();
formData.append("SendBy", "username");
formData.append("Sendto", "got_name");
formData.append("Msg", "input");

axios.post(url, formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
})
但如果您想在前端处理它,它将是这样的:

$data = json_decode(file_get_contents('php://input'), true);

$recText = $data['Msg'];
$sendby = $data['Sendby'];
$sendto = $data['Sendto'];
var formData = new FormData();
formData.append("SendBy", "username");
formData.append("Sendto", "got_name");
formData.append("Msg", "input");

axios.post(url, formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
})
注意:正如Dharman善意地警告您的那样,您的后端代码存在与SQL注入相关的严重安全问题,最好将您的连接和查询处理分隔开来
类/文件
。如果您正在开发一个生产应用程序,甚至只是学习,请注意这些细节,还有一些初学者朋友框架,可以让您轻松地为小型或大型项目(如Laravel)创建一个良好的结构

样本:


警告:您完全可以使用参数化的预处理语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。这回答了你的问题吗@达曼:不,先生/妈妈,这只是与php有关,而不是我要找的东西。你的问题被标记为php和MySQL。您已经向我们展示了PHP错误和PHP代码。如果这不是你想要的,那么请编辑它并更好地解释。谢谢你的回答,我是一个学习者和学生,我一定会努力提高自己。不客气。继续吧,我们都在不断地提高自己。如果你有任何问题,请随时发帖。