С моей настройкой NGinx я смог перехватить запросы OPTIONS из предполетного билета ajax и ответить правильными заголовками CORS и ответом 200, чтобы запрос мог продолжить. Я пытаюсь объединить мои сторонние прокси в HAProxy, и у меня есть некоторые проблемы, связанные с тем, что эта часть головоломки работает.
Моя особая проблема заключается в том, что, хотя я могу добавить правильные опции CORS, когда есть сервер, способный правильно реагировать на запрос OPTIONS, некоторые из бэкэнд не могут обрабатывать/отвечать с ошибкой 405, когда запрос предполетной выпущен. В моем haproxy.cfg были добавлены следующие строки для добавления заголовков:
capture request header origin len 128
http-response add-header Access-Control-Allow-Origin %[capture.req.hdr(0)] if { capture.req.hdr(0) -m found }
rspadd Access-Control-Allow-Credentials:\ true if { capture.req.hdr(0) -m found }
rspadd Access-Control-Allow-Headers:\ Origin,\ X-Requested-With,\ Content-Type,\ Origin,\ User-Agent,\ If-Modified-Since,\ Cache-Control,\ Accept if { capture.req.hdr(0) -m found }
rspadd Access-Control-Allow-Methods:\ GET,\ POST,\ PUT,\ DELETE,\ OPTIONS if { capture.req.hdr(0) -m found }
rspadd Access-Control-Max-Age:\ 1728000 if { capture.req.hdr(0) -m found }
Решение, заданное в:
Как отправить ответ с помощью HAProxy без передачи запроса на веб-серверы работает, когда вы устанавливаете все правильные заголовки из клиентского запроса, но не динамичны, не является идеальным решением.
Любая помощь будет оценена!