Я работаю над формой контакта, и эта ошибка не позволяет ей работать ... Возможно, я что-то наблюдаю. Самое смешное в том, что мой код работает, если я использую XMLHttpRequest вместо Fetch ..
При использовании Fetch, если я не запрашиваю ответ, это не выдает мне никакой ошибки, но и не работает. Как видите, я отлаживаю передаваемые параметры, и они в порядке.
handleSubmit(e)
{
/*var xhr = new XMLHttpRequest();
xhr.addEventListener('load', () => {console.log(xhr.responseText)});
xhr.open('POST', 'http://localhost:3002/index.php');
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(JSON.stringify(this.state));*/
fetch('http://localhost:3002/index.php',
{
method: "POST",
body: JSON.stringify(this.state),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
}).then(
console.log(JSON.stringify(this.state))
).then(
(response) => (response.json())).then((response)=>
{
if (response.status === 'success')
{
alert("Message Sent.");
this.resetForm()
}
else if(response.status === 'fail')
{
alert("Message failed to send.")
}
})
e.preventDefault();
}
И ответ со стороны php:
...
$sent = $mail->send();
echo 'Message has been sent';
if (isset($sent) && $sent === true) : ?>
{
"status": "success",
"message": "Your data was successfully submitted"
}
<?php endif;
}
catch (Exception $e)
{
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
}
else if (!empty($errors)) : ?>
{
"status": "fail",
"error": <?php echo json_encode($errors) ?>
}
<?php endif;