从React到PHPmailer的Axios帖子

时间:2018-10-11 01:43:06

标签: php axios

我想先把代码拿出来,然后再讨论我的思考过程。我知道有一些与此相关的较旧的帖子,但是我无法弄清楚自己在做什么错。

首先我的handleSubmit:

handleSubmit(e) {
e.preventDefault();
var formData = new FormData();

if (this.state.file != undefined) {
  formData.append('file', this.state.file);
}
formData.append("name", this.state.name);
formData.append("email", this.state.email);
formData.append("message", this.state.message);
const config = {
  headers: {
      'content-type': 'multipart/form-data'
  }
}

return post(*removed*, {formData}, config).then(function (response) {
  console.log(response);
});
}

我的PHP如下:

<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$data = json_decode(file_get_contents('php://input'), TRUE);

$name = $data['name'];
$email = $data['email'];
$message = $data['message'];

     if ( empty($name) OR empty($message)) {
    http_response_code(400);
    echo "Oops! There was a problem with your submission. Please complete the form and try again.";
    exit;
}

现在获取一些额外的信息。 1)就目前的代码而言,我得到了400响应,因为它没有发送有意义的数据,但是正在发送数据。 2)我知道它的发布是因为我没有收到403。3)如果我设置了name,email和message变量,它将正确发送包含我设置的变量的电子邮件。 4)我也尝试使用“设置”而不是“追加”,但是没有变化。

我认为我没有正确处理PHP正在接收的数据,或者我没有从React发送正确的数据。我发现了多个其他示例,这些示例表明我的工作应该起作用,因此在这里我有点茫然。谢谢您的宝贵时间。

0 个答案:

没有答案