@Deadorik

Почему не отправляется форма?

Всем привет. Пытаюсь реализовать отправку формы локально через openserver. Собираю данные корректно в formData и пытаюсь передать в php. Вылезает 404 ошибка (объект не найден).

Совершенно не понимаю куда копать и что происходит. Находил разные видосы на ютубе, пытался реализовать их код. Либо некорректно написана отправка через fetch, либо в скрипте php, либо и то и другое. Подскажите, если не сложно куда копать. Как узнать эта ошибка из-за того что скрипт не может отправиться или из-за того что не корректно отправляю данные в php?

async function sendMail(formData) {
    //========Отправка данных в php скрипт====
    fetch("mail.php", {
      method: "POST",
      body: formData,
    })
      .then(function (response) {
        return response.text();
      })
      .then(function (text) {
        console.log(text);
      })
      .catch(function (error) {
        console.log(error);
      });


// ======== PHP скрипт =========

<!-- Через 10 секунд после появления сообщения об отправке или ошибке — отправляемся на сайт Кода :) -->
<meta http-equiv='refresh' content='10; url=http://thecode.local/'>
<meta charset="UTF-8" />
<!-- Начался блок PHP -->
<?php
// Получаем значения переменных из пришедших данных
$name = $_POST['name'];
$email = $_POST['email'];
$number = $_POST['number'];
$adress = $_POST['adress'];
$comment = $_POST['comment'];
// Формируем сообщение для отправки, в нём мы соберём всё, что ввели в форме
$mes = "Имя: $name \nE-mail: $email \nНомер телефона: $number \nАдрес: $adress \nТекст: $comment";
// Пытаемся отправить письмо по заданному адресу
// Если нужно, чтобы письма всё время уходили на ваш адрес — замените первую переменную $email на свой адрес электронной почты
$send = mail($email, $header, $mes, "Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
// Если отправка прошла успешно — так и пишем
if ($send == 'true') {echo "Сообщение отправлено";}
// Если письмо не ушло — выводим сообщение об ошибке
else {echo "Ой, что-то пошло не так";}
?>
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
SemanticMoscow
@SemanticMoscow
это какой-то подкаталог относительно корня?

тогда, вместо fetch("mail.php", {
писать fetch("./mail.php", {

или, где и в какой момент у вас 404?
может дело в
<meta http-equiv='refresh' content='10; url=http://thecode.local/'>

этот адрес в браузере доступен?

можно просто в логи сервера заглянуть и понять кто куда ломится перед ответом 404
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы