Я использую WebDAV, используя Nginx.У меня есть приложение JS, использующее его в качестве хранилища.Проблема в том, что расширение WebDAV удаляет заголовки, которые я добавил, используя «add_header» в моей конфигурации.
server {
# IP, Certificates, fullpath, autoindex ...
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
dav_access user:rw group:rw all:rw;
location / {
root /srv/http/content;
# Preflighted requests
if ($request_method = OPTIONS) {
add_header "Access-Control-Allow-Origin" *;
add_header "Access-Control-Allow-Methods" "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK, PROPFIND";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept, DNT, X-CustomHeader, Keep-Alive,User-Agent, X-Requested-With, If-Modified-Since, Cache-Control, Content-Range, Range, Depth";
return 200;
}
if ($request_method = (GET|POST|HEAD|DELETE|PROPFIND)) {
add_header "Access-Control-Allow-Origin" *;
add_header "Access-Control-Allow-Methods" "GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK, PROPFIND";
add_header "Access-Control-Allow-Headers" "Authorization, Origin, X-Requested-With, Content-Type, Accept";
}
}
}
И когда я открываю соединение WebDAV из моего приложения, оно запрашивает OPTIONS
, а затем PROPFIND
,Запрос OPTIONS
проходит при наличии правильных заголовков CORS, но PROPFIND
не выполняется, поскольку заголовки CORS не были установлены.Обратите внимание на особый случай OPTIONS
в конфиге, где я заставляю Nginx возвращать Http200
.Затем появляются заголовки.Но если позволить WebDAV завершить работу, все заголовки CORS исчезнут.
Кто-нибудь обходил это поведение?