NuxtJS + axios + php mail - php не получает данные из формы - PullRequest
0 голосов
/ 15 октября 2019

У меня проблема с формой, в основном почта отправляется, но без моих данных. Для меня это выглядит нормально, ответное шоу:

baseURL: "http://localhost:3000/"
data: "{"name":"asda","email":"asdad@wp.ll","message":"asdad"}"

Data - это обычный json, но с обеих сторон отображается базовый URLlocalhost может быть, в этом проблема?

PS Я также пытался с локального хоста и сервера, но результат был тот же.

Методы отправки NuxtJS:

export default {
  name: "Contact",
  data() {
    return {
      formMessage: "Form succesfull send",
      form: {
        name: "asdad",
        email: "asdads@gmail.com",
        message: "czxczsdqw"
      }
    };
  },
  computed: {
    formValid() {
      return Object.keys(this.fields).every(field => {
        return this.fields[field] && this.fields[field].valid;
      });
    }
  },
  methods: {
    formSubmit(e) {
      e.preventDefault();
      this.$axios
        .post(
          "url-to-php-script",
          JSON.stringify(this.form))
        .then(res => {
          console.log(res);
          this.formMessage = "Form successfull send";
        });
    }
  }
};

Иphp mail file:

<?php

$name = $_POST['name'];
$from = $_POST['email'];
$message = $_POST['message'];

$message_content = "<h1>Name: $name</h1>";
$message_content .= "<p>From: $from</p>";
$message_content .= "<p>Message: $message</p>";
$to_email = 'kaawkamateusz@gmail.com';
$subject = "Mail from kawkamateusz.pl";
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=UTF-8';
$headers[] = 'kawkamateusz.pl';

mail($to_email, $subject, $message_content, implode("\r\n", $headers));

?>

** Извините за английский, если что-то неясно, я не родной

1 Ответ

0 голосов
/ 15 октября 2019

Я использовал fetch с URLSearchParams и все отлично работает - для будущих посетителей.

fetch(`xxx.php`, {
        method: "post",
        body: new URLSearchParams(this.form)
      })
...