Страница не отображает ответ AJAX должным образомPhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Страница не отображает ответ AJAX должным образом

Сообщение Гость »


Мой скрипт contact.php успешно обрабатывает отправку электронных писем.
Однако при отправке формы в index.html вместо отображения ожидаемого сообщения об успехе в классе .send-message браузер отображает сообщение об ошибке в формате JSON.
Несмотря на попытку использовать AJAX, запрос не запускается должным образом, и сообщение об ошибке сохраняется, а не показывает желаемое сообщение об успехе, заключенное в
В моем index. html, есть форма «Свяжитесь с нами», которая отправляет электронное письмо через POST на contact.php. contact.php обрабатывает форму с помощью PHPMailer и возвращает true или false в index.html.
Сообщение об ошибке, показанное на рисунке, — это $responseString< /code> из contact.php.
Эта проблема связана только с двумя файлами: index.html и contact.php, которые несут ответственность за обработку контактной формы. Однако я не уверен, почему сообщение об ошибке работает неправильно.
Может ли кто-нибудь дать рекомендации по решению этой проблемы?

Contact.php

Код: Выделить всё

 $mail->send();
// Manually construct success response
$responseString = '{"success": true, "message": "Your message has been sent. Thank you!"}';
} catch (Exception $e) {
// Manually construct error response
$responseString = '{"success": false, "message": "Failed to send the message. Please try again later."}';
}

header('Content-Type: application/json');
echo $responseString;
index.html

Код: Выделить всё

  











Loading
Your message has been sent. Thank you!


Send Message


ajax

Код: Выделить всё

$(document).ready(function() {
$('.php-email-form').on('submit', function(e) {
e.preventDefault(); // Prevent default form submission

var formData = $(this).serialize();

$.ajax({
type: 'POST',
url: 'forms/contact.php', // Make sure the path is correct
data: formData,
dataType: 'json', // Expect JSON response from the server
success: function(response) {
if (response.success) {
$('.error-message').hide(); // Hide any previous error message
$('.sent-message').text(response.message).show(); // Show success message
} else {
$('.sent-message').hide(); // Hide any previous success message
$('.error-message').text(response.message).show(); // Show error message
}
$('.loading').hide(); // Hide the loading indicator
},
error: function() {
$('.loading').hide(); // Hide the loading indicator
$('.sent-message').hide(); // Hide any previous success message
$('.error-message').text('An error occurred.  Please try again later.').show(); // Show fallback error message
}
});
});
});


Источник: https://stackoverflow.com/questions/781 ... s-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»