что я не могу нормально обработать preflight запросы по типу OPTION.
server {
listen 80;
server_name backend.com;
location / {
include proxy_params;
proxy_pass http://unix:/root/backend/src/backend.sock;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
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 = 'POST') {
add_header 'Access-Control-Allow-Origin' $http_origin;
#add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
}
}
}
До этого на локалке все работало, юзая плагин flask_cors, а сейчас nginx меня разочаровывает. Если у меня access control allow origin стоит у option и post, то вылазиет ошибка по типу у вас много значений в этом заголовке. А если убрать у кого то access control allow origin, то этого заголовка типа вообще нет. Как мне быть в такой ситуации?
upd: POST не работает, если до него не было OPTION'а (при этом в проверке на POST запрос не должно быть включенного cors)
Обсуждают сегодня