Как исправить ошибку 500 при отправке ajax?

Ссылка скопирована
10 февраля 2026 1 ответ

Отправка почты. Ошибка 500

Как исправить ошибку 500 при отправке ajax?

php-файл:

<?php     use PHPMailerPHPMailerPHPMailer;     use PHPMailerPHPMailerException;      require 'phpmailer/src/Exception.php';     require 'phpmailer/src/PHPMailer.php';      $mail = new PHPMailer(true);     $mail->CharSet = 'UTF-8';     $mail->IsHTML(true);      //ОТ кого письмо      $mail->setForm('mailer@mail.ru', 'MAILER');     //Кому отправить     $mail->addAddress('ga********@bk.ru');     //Тема письма      $mail->Subject = 'Здравствуйте. У вас новая Заявка на сайте';      //Тело Пиьсма     $body = '<h1>Посетитель оставил заявку</h1>';      if(trim(!empty($_POST['name']))) {         $body.='<p><strong>Имя:</strong> '.$_POST['name'].'</p>';     }     if(trim(!empty($_POST['phone']))) {         $body.='<p><strong>Телефон:</strong> '.$_POST['phone'].'</p>';     }      //Отправялем      $mail->Body = $body;      if (!$mail->send()) {         $message = 'Ошибка';     }     else {         $message = "Данные отправлены!";     }      $response = ['message' => $message];      header('Content-Type: application/json');     echo json_encode($response);  ?>

<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->IsHTML(true); //ОТ кого письмо $mail->setForm('mailer@mail.ru', 'MAILER'); //Кому отправить $mail->addAddress('ga********@bk.ru'); //Тема письма $mail->Subject = 'Здравствуйте. У вас новая Заявка на сайте'; //Тело Пиьсма $body = '<h1>Посетитель оставил заявку</h1>'; if(trim(!empty($_POST['name']))) { $body.='<p><strong>Имя:</strong> '.$_POST['name'].'</p>'; } if(trim(!empty($_POST['phone']))) { $body.='<p><strong>Телефон:</strong> '.$_POST['phone'].'</p>'; } //Отправялем $mail->Body = $body; if (!$mail->send()) { $message = 'Ошибка'; } else { $message = "Данные отправлены!"; } $response = ['message' => $message]; header('Content-Type: application/json'); echo json_encode($response); ?>

Дополнительно:

Открой в инструментах Network, тыкни в упавший запрос, тыкни Preview и прочитай собственно ошибку.

  • Aetae, Это если вывод ошибок в пхп включен. Иначе смотреть ошибку в логах.
  • Смотрите текст ошибки PHP в логах web-сервера.
  • AUser0, Спасибо большое, что подсказали . Он ругается на метод setForm, может ли это быть из-за версии php на хосте?
    Call to undefined method PHPMailer\PHPMailer\PHPMailer::setForm() in ..
  • AUser0, я разобрался, и вправду , метода setForm не существует, если чуть почитать про пхпмайлер, то станет понятно, что имеется ввиду метод setFrom. Спасибо за помощь!!!
  • Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
    См.п.3.1 Регламента. Также обратите внимание на п.3.4
  • Нарушение п.3.8 Регламента. Скриншоты фрагментов кода запрещены.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Елена Вебер Ответ

    Для исправления ошибки 500 при отправке AJAX запроса необходимо пройти следующие шаги:

    1. Проверьте консоль разработчика в браузере (обычно нажмите F12), чтобы увидеть более подробную информацию об ошибке. Возможно, там будет указан конкретный файл и строка кода, в которой происходит ошибка.

    2. Убедитесь, что путь к обработчику AJAX запроса указан правильно. Проверьте, что путь к файлу или маршрут к обработчику указаны верно и соответствуют структуре вашего проекта.

    3. Проверьте права доступа к файлу обработчику. Убедитесь, что у файла есть достаточные права доступа для обработки AJAX запросов.

    4. Проверьте код обработчика AJAX запроса. Убедитесь, что он написан корректно и не содержит синтаксических ошибок. Также проверьте, что обработчик возвращает корректный ответ на запрос.

    5. Попробуйте увеличить максимальное время выполнения скрипта на сервере. Возможно, ваш запрос занимает слишком много времени и сервер прерывает его выполнение.

    Пример кода обработчика AJAX запроса на PHP:

     true]);
    } else {
        http_response_code(400);
        echo json_encode(['error' => 'Invalid request']);
    }
    ?>

    true]); } else { http_response_code(400); echo json_encode(['error' => 'Invalid request']); } ?>

    Следуя этим шагам, вы сможете найти и исправить ошибку 500 при отправке AJAX запроса.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно