Я создаю форму электронной почты с PHP и Ajax. Я делал формы раньше, но никогда не использовал Ajax. Я использую валидатор bootstrap для проверки формы, а затем, как только она будет проверена, на мой php скрипт отправляется запрос Ajax:
$(function () {
$('#contact-form').validator();
// when the form is submitted
$('#contact-form').on('submit', function (e) {
// if the validator does not prevent form submit
if (!e.isDefaultPrevented()) {
// POST values in the background the the script URL
$.ajax({
url: "contact.php",
type: "post",
data: $('#contact-form').serialize(),
success: function(data)
{
// success message
},
error: function(jqXhr, textStatus, errorMessage){
console.log("Error: ", errorMessage);
}
});
}
})
});
В моем php скрипте я прослушать запрос, а затем отправить обратно закодированные данные json. Если запроса нет, сценарий должен выдать сообщение об ошибке:
// if requested by AJAX request return JSON response
if(
isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strcasecmp($_SERVER['HTTP_X_REQUESTED_WITH'], 'xmlhttprequest') == 0
) {
$responseArray = array('type' => 'success', 'message' => $okMessage);
header('Content-Type: application/json');
echo json_encode($responseArray);
} else {
$responseArray = array('type' => 'danger', 'message' => $errorMessage);
echo $responseArray['message'];
}
Когда я отправляю свою форму , электронное письмо проходит в мой почтовый ящик, как ожидалось , но меня перенаправляют на * Отображается 1009 * и $errorMessage
. Это потому, что инструкция else запускается до получения запроса ajax? Если да, то как исправить?