Как исправить ошибку 500 при отправке ajax?
Отправка почты. Ошибка 500
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 и прочитай собственно ошибку.
Call to undefined method PHPMailer\PHPMailer\PHPMailer::setForm() in ..
См.п.3.1 Регламента. Также обратите внимание на п.3.4
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для исправления ошибки 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']); } ?>
Следуя этим шагам, вы сможете найти и исправить ошибку 500 при отправке AJAX запроса.