php文件未从axios post请求接收数据

php文件未从axios post请求接收数据,php,reactjs,axios,Php,Reactjs,Axios,php文件未接收来自axios post请求的数据。表单提交后显示未定义的错误。我已经在react js中创建了表单。所有字段和状态变量都正确显示 axios({ method: 'post', url: 'http://tulisuites.com/form.php', headers: { 'content-type': 'application/json' }, data:JSON.stringify(this.state) }) .then(result =>

php文件未接收来自axios post请求的数据。表单提交后显示未定义的错误。我已经在react js中创建了表单。所有字段和状态变量都正确显示

axios({
  method: 'post',
  url: 'http://tulisuites.com/form.php',
  headers: { 'content-type': 'application/json' },
  data:JSON.stringify(this.state)
})
  .then(result => {
    this.setState({
      mailSent: result.data.sent
    });
    console.dir(this.state);
  })
  .catch(error => this.setState({ error: error.message }));  

若您通过ajax将数据以正确的JSON格式发送到服务器,那个么它应该已经在您的全局$\u POST变量中了。您可以通过使用var_dump$\u POST查看其内容来确保获得数据。如果它包含您的数据,则无需从输入流中读取值,对其进行解码,然后覆盖您的全局变量,您只需使用以下行:

$msg = $_POST['name'] . $_POST['email'] . $_POST['organisation'] . $_POST['contactno'] . $_POST['message'];
它应该会起作用


此外,您可以对每个参数使用filter\u inputINPUT\u POST变量,而不是$\u POST[variable],以确保它们已设置并防止错误。

由于$\u POST是一个超全局变量,您应该能够直接从$\u POST接收数据,或者使用$\u REQUEST获取所有方法。在我看来,没有必要使用file\u get\u contentsphp://input;.@如果请求的内容类型是application/x-www-form-urlencoded或multipart/form data,则JakobKronsteiner PHP仅填充$\u POST。这里是application/json,因此需要直接从原始输入流读取。那么您发送的json实际上是什么样子的?@misorude Ok,谢谢更新。以前没有这样的情况。因此,我们需要按照前面的要求查看json数据。Thx“如果您通过ajax以正确的JSON格式将数据发送到服务器,它应该已经在您的全局$\u POST变量中。”-不,不应该。PHP仅使用内容类型application/x-www-form-urlencoded或multipart/form-data为请求填充$\u POST。您可以使用控制台中的[link]在此页面上查看axios json结果
$msg = $_POST['name'] . $_POST['email'] . $_POST['organisation'] . $_POST['contactno'] . $_POST['message'];