Задать вопрос
@kickass77

Почему возникает 405 Not allowed на разных хостингах?

Здравствуйте. На одном хостинге - все супер, на другом при отправке ajax запроса, появляется такая ошибка и GET запрос AJAX не выполняется и дальнейшая функция.

Ajax запрос:

<script>
    	$("#feedback-form").click(function () {
        var name = "Новый клиент";
        var phone = $("#phone").val();

        $.ajax({
            url: "include/mail.php",
            cache: false,
            data: ({type:"mail", name:name, 
                phone:phone
            }),
            success: function(html){
            	$("#feedback-form").hide();
                 $("#mail_ajax").html(html);
            }
        });
        return false;
    });
</script>


Обработчик

if($_GET['type'] == 'mail') {
        $name = trim($_GET['name']);
        $phone = trim($_GET['phone']);

        $fromMail = 'email@site.ru';
        $fromName = 'email@site.ru НОВАЯ ЗАЯВКА';


        $emailTo = 'email@site.ru';
        $subject = 'Заявка с сайта';
        $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Телефон: $phone";

        if (strlen($phone) > 0) {
            if($mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail )) {
                echo "Сообщение отправлено";
            }else{
                echo "Не отправлено";
            };
        }
    }


Путь везде верный, ничего не менялось. Одинаковые файлы и на одном хостинге все работает, на другом - нет.
Файл htaccess отсутствует.
Единственное отличие, неработающий сайт в доменной зоне рф.
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Возможно, причина в том, что функция mail заблокирована на некоторых хостингах.
Учитывая, что письмо, отправленное через эту функцию, почти гарантированно попадает в спам, её всё равно не стоит использовать в продакшине. Замените на PHPMailer с отправкой через SMTP.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы