Отправка формы, ошибка 405
У меня есть форма отправки на сайте:
<form id="form" class="form__body" action="" method="post">
<div>
<div class="b24-form-field b24-form-field-name b24-form-control-string">
<div>
<div>
<div class="b24-form-control-container b24-form-control-icon-after" >
<input name="name" id="form-name" autocomplete="given-name" type="string" class="b24-form-control _req" style="background-color:rgb(247, 247, 247); border: 0px; " required>
<div class="b24-form-control-label">Имя
<span class="b24-form-control-required">*</span>
</div>
</div>
</div>
</div>
</div>
<div class="b24-form-field b24-form-field-company-name b24-form-control-string">
<div>
<div>
<div class="b24-form-control-container b24-form-control-icon-after">
<input name="company" id="form-company" type="string" class="b24-form-control _req" style="background-color:rgb(247, 247, 247); border: 0px;" required>
<div class="b24-form-control-label">Название компании
<span class="b24-form-control-required">*</span>
</div>
</div>
</div>
</div>
</div>
<div class="b24-form-field b24-form-field-phone b24-form-control-string">
<div>
<div>
<div class="b24-form-control-container b24-form-control-icon-after">
<input name="phone" id="form-phone" autocomplete="tel" type="tel" class="mask-phone b24-form-control _req" style="background-color:rgb(247, 247, 247); border: 0px;" required>
<div class="b24-form-control-label">Телефон
<span class="b24-form-control-required">*</span>
</div>
</div>
</div>
</div>
</div>
<div class="b24-form-field b24-form-field-email b24-form-control-string">
<div>
<div>
<div class="b24-form-control-container b24-form-control-icon-after">
<input name="email" id="form-email" autocomplete="email" type="text" class="b24-form-control _req _email" style="background-color:rgb(247, 247, 247); border: 0px;" required>
<div class="b24-form-control-label">E-mail
<span class="b24-form-control-required">*</span>
</div>
</div>
</div>
</div>
</div>
<div class="b24-form-field b24-form-field-text b24-form-control-text">
<div>
<div>
<div class="b24-form-control-container b24-form-control-icon-after">
<textarea name="comment" id="form-comment" class="b24-form-control" style="background-color:rgb(247, 247, 247); border: 0px;" placeholder=" "></textarea>
<div class="b24-form-control-label">Комментарий
<span class="b24-form-control-required" style="display: none;">*</span>
</div>
<div class="b24-form-control-alert-message" style="display: none;"></div>
</div>
</div>
</div>
</div>
</div>
<div>
<div class="b24-form-field b24-form-field-agreement b24-form-control-agreement">
<div>
<label class="b24-form-control-container">
<input type="checkbox" class="checkbox__input _req" required onclick="this.blur()" checked="checked">
<span class="b24-form-control-desc">
<span class="b24-form-field-agreement-link ">Нажимая кнопку «Отправить», я даю свое согласие на обработку моих персональных данных</span>
</span>
<span class="b24-form-control-required">*</span>
<div class="b24-form-control-alert-message" style="display: none;"></div>
</label>
</div>
</div>
<div class="v-portal" style="display: none;"></div>
</div>
<div class="b24-form-btn-container">
<div class="b24-form-btn-block">
<button type="submit" class="b24-form-btn">Отправить</button>
</div>
</div>
</form>
Также в этом же файле есть js:
<script>
jQuery(document).ready(function(){
jQuery("form").submit(function() { // Событие отправки с формы
var form_data = jQuery(this).serialize(); // Собираем данные из полей
jQuery.ajax({
url: "/senda.php", // Путь к PHP обработчику sendform.php
method: "POST", // Метод отправки
data: form_data,
success: swal({
title: "Спасибо за заявку!",
type: "success",
showConfirmButton: false,
timer: 2000
})
});
$(this).find('input, textarea').prop('disabled', true);
event.preventDefault();
});
});
</script>
js отправляет форму в обработчик:
<?php
$name = trim($_POST['name']);
$company = trim($_POST['company']);
$phone = trim($_POST['phone']);
$email = trim($_POST['email']);
$comment = trim($_POST['comment']);
$fromMail = 'info@verstach.ru';
$fromName = 'Поступила заявка с сайта'; //Заголовок письма
$emailTo = 'www@mail.ru';
$subject = 'Форма обратной связи site.com';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $fromName ." <". $fromMail ."> \r\n";
// Содержимое письма
$body = "Получено письмо с сайта \n Имя: $name\nКампания: $company\nТелефон: $phone\nEmail: $email\nКомментарий: $comment";
$mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail );
return;
Но как только я отправляю форму, возникает ошибка 405 (Method Not Allowed), которая ссылается на мой обработчик. Ошибка это говорит о том, что данные отправляются, но что то не так с файлом php. Может кто то объяснить, что не так делаю?
P.s все библиотеки и файлы подключены, тестирую на локалке, спасибо
Источник: Stack Overflow на русском