Sc0undRel
@Sc0undRel

Почему через Ajax не отправляется форма?

Данным кодом обрабатываю форму при отправке:

<script>
            jQuery("form").submit(function() {
                        var form_data = jQuery(this).serialize();
                        jQuery.ajax({
                                type: "POST",
                                url: "/form1.php",
                                data: form_data,
                                success: function(data) {
                                    alert("Accepted. We will contact you within 1 hour!");
                                }
                        });
                    return false;
            });
        </script>


Однако при попытке отправить форму в консоле появляется ошибка:
Mixed Content: The page at 'https://site.ru/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'site.ru:443'. This request has been blocked; the content must be served over HTTPS.


Эта ошибка пропадает, если удалить htaccess:

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_URI} !^/robots\.txt
RewriteRule !(^$|.*\.(css|jpg|gif|ico|png)) / [R=301,L]

RewriteCond %{QUERY_STRING} ^(.+) [NC]
RewriteRule ^(.*)$ /$1? [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


Но мне нужен этот htaccess.
Как его переписать, чтоб он позволял через ajax отправлять формы?
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
@dodo512
RewriteRule !(^$|.*\.(css|jpg|gif|ico|png)) / [R=301,L]

Это правило редиректит на главную всё кроме картинок и стилей, так что запрос /form1.php будет обработан этим правилом.
Можно добавить исключение для файла RewriteCond %{REQUEST_URI} !^/form1\.php
Или для любых POST запросов RewriteCond %{REQUEST_METHOD} !POST
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы