Комрадосы! Прошу помощи зала!
Вводные. nginx фронтом. ssl поднят на одном из доменов site.ru.
Две инструкции server {} для 80 и 443.
Третья с редиректом
server {
listen 80;
server_name site.ru www.site.ru;
return 301 https://$host$request_uri;
}
Все работает. Но есть один POST запрос вида
Код:
$(document).on('click', '.logout', function(e){
e.preventDefault();
_doSetCookie('autologin','no','',''); //нажата кнопка Выход
$.ajax({
type: 'post',
async : false,
url: '?logout',
data: 'redirectto=person/',
dataType: "json",
success: function(data) {
_doSetCookie('shopcart','onimod');
location.reload();
}
});
});
Который неизменно заканчивается
Mixed Content: The page at '
Ссылка скрыта от гостей
' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint '
Ссылка скрыта от гостей
'. This request has been blocked; the content must be served over HTTPS.
В конфиге сервера nginx пытался бороть как
Код:
if ( $request_method !~ ^(GET|POST|HEAD|OPTIONS|PUT|PATCH|DELETE)$ ) {
return 444;
}
set $origin $http_origin;
if ($origin !~ '^https?://(subdom1|subdom2)\.site\.ru$') {
set $origin 'https://site.ru';
}
#if ($origin !~ '^https?://(subdom1|subdom2)\.site\.ru$') {
# set $origin 'http://site.ru'; #не помогло
#}
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' "$origin" always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PATCH, PUT, DELETE, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Content-Type, Accept, Authorization' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header Access-Control-Max-Age 1728000;
add_header Content-Type 'text/plain charset=UTF-8';
add_header Content-Length 0;
return 204;
}
if ($request_method ~ '(GET|POST|PATCH|PUT|DELETE)') {
add_header Access-Control-Allow-Origin "$origin" always;
add_header Access-Control-Allow-Methods 'GET, POST, PATCH, PUT, DELETE, OPTIONS' always;
add_header Access-Control-Allow-Headers 'Content-Type, Accept, Authorization' always;
add_header Access-Control-Allow-Credentials true always;
}
Консоль ?logout
- URL-адрес запроса:
Ссылка скрыта от гостей
- Метод запроса:
POST
- Код состояния:
302
- Политика источника ссылки:
strict-origin-when-cross-origin
- Заголовки откликовПросмотреть источник
- Access-Control-Allow-Credentials:
true
- Access-Control-Allow-Headers:
Content-Type, Accept, Authorization
Access-Control-Allow-Methods:
GET, POST, PATCH, PUT, DELETE, OPTIONS
- Access-Control-Allow-Origin:
Ссылка скрыта от гостей
#Access-Control-Allow-Origin:
Ссылка скрыта от гостей
не помогло
- Connection:
keep-alive
- Date:
Sat, 17 Sep 2022 19:58:48 GMT
- Location:
Ссылка скрыта от гостей
- Server:
nginx/1.10.0
- Set-Cookie:
DomAuthSessId=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/
- Transfer-Encoding:
chunked
Не помогло. Какие есть мысли побороть 302 ошибку? То бишь лог аут отрабатывает, но location.reload(); не происходит. Браузер блокирует.
Естественно смущает здесь
Location:
http://site.ru/
когда по всем остальным Get и post по сайту вопросов нет.