Задача бэка только получить данные и отправить на почту. Бэку передаю с Vue SPA axiosом, но почему то данные не доходят до бэка, а письмо как надо отправляет. Есть аналогичный проект, но там без SPA и через ajax. Подскажите в чем проблема?
бэк:
<?
use PHPMailer\PHPMailer\PHPMailer;
require 'phpmailer/Exception.php';
require 'phpmailer/OAuth.php';
require 'phpmailer/PHPMailer.php';
require 'phpmailer/POP3.php';
require 'phpmailer/SMTP.php';
$mail = new PHPMailer;
$mail->setFrom("leads@wonlex-smart.ru");
$mail->addAddress('danil2777@yandex.ru');
$mail->CharSet = "UTF-8";
$mail->Subject = htmlspecialchars('Заявка на информацию о консервах');
$message = '';
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Консервы: '.$_POST.'</p>
<p>Консервы: '.$_POST['food'].'</p>
<p>Телефон: '.$_POST['phone'].'</p>
</body>
</html>';
$mail->msgHTML($message);
if (!$mail->send()) {
echo json_encode(['success' => false, 'msg' => "Mailer Error: " . $mail->ErrorInfo]);
} else {
$message = '<div class="thanks">
<div class="thanks-top">СПАСИБО ЗА ЗАЯВКУ!</div>
<div class="thanks-text">Наш менеджер свяжется с Вами в ближайшее время</div>
</div>';
echo json_encode(['success' => true, 'msg' => $message, 'post' => $_POST]);
}
?>
send(){
const dataForm = {
food: this.$store.state.currentFood ? this.$store.state.currentFood.title : 'Заявка из каталога',
phone: this.phoneValue
}
console.log('dataForm: ', dataForm);
// const str = JSON.stringify(dataForm);
HTTP.post(Routes.postRequest, dataForm)
.then(({data}) => {
console.log(data);
})
.catch(error => {
console.error(error);
this.isLoading = false;
})
console.log('phoneValue', this.phoneValue);
}
},
И вот из другого проекта, где все работает.
sendForm(){
var phone = document.getElementById('phone-field').value;
if(!phone.match(/\+7\s\(\d{3}\)\s\d{3}\-\d{2}\-\d{2}/)) {
return;
}
$.ajax({
type: "POST",
url: "/ajax/send.php",
data: {
phone: phone,
watch: this.show.name
},
dataType: 'html',
success: function(data) {
var data = JSON.parse(data);
if(data.success) {
$('.callback-form').html(data.msg);
ym(54152995, 'reachGoal', 'count');
} else {
alert(data.msg);
}
}
});
},