Проблемы с настройкой HAProxy для правильного возврата заголовков CORS - PullRequest
0 голосов
/ 13 октября 2018

Мне нужна помощь с заголовками CORS и настройкой HAProxy.

Я добавил следующее в конфигурации haproxy:

    # Add CORS headers when Origin header is present
capture request header origin len 128
http-response set-header Access-Control-Allow-Origin %[capture.req.hdr(0)] if { capture.req.hdr(0) -m found }
http-response set-header Access-Control-Allow-Methods GET,\ HEAD,\ OPTIONS,\ POST,\ PUT if { capture.req.hdr(0) -m found }
http-response set-header Access-Control-Allow-Credentials true if { capture.req.hdr(0) -m found }
http-response set-header Access-Control-Allow-Headers X-Stream-Output,\ X-Chunked-Output,\ X-Content-Length if { capture.req.hdr(0) -m found }
http-response set-header Access-Control-Expose-Headers X-Stream-Output,\ X-Chunked-Output,\ X-Content-Length if { capture.req.hdr(0) -m found }

Кажется, он возвращает заголовки CORS в браузер, но япо-прежнему получает 403 Запрещено на вызовы JSON из браузера.Вот URL-адрес, по которому я пытаюсь позвонить:

https://ipfs.blockchaingraph.org:5001/api/v0/cat/QmdKPs1N6gH3R62BGssakAaEdFv14rp6fVVQy36yzdFQdT

Когда я пытаюсь вызвать аналогичный запрос третьей стороны, он работает просто отлично:

https://ipfs.infura.io:5001/api/v0/cat/QmdKPs1N6gH3R62BGssakAaEdFv14rp6fVVQy36yzdFQdT

Я сравнил заголовки обоих ответов.Оба выглядят одинаково.Я озадачен тем, что мне здесь не хватает.

Я подозреваю, что внутренний сервер блокирует запросы на основе некоторых заголовков.Я попытался удалить Origin: "http-request del-header Origin", но это не помогло

1 Ответ

0 голосов
/ 14 октября 2018

Да, это был внутренний сервер, отклоняющий запросы.Проблема исчезла, когда я добавил удаление заголовка реферера в конфигурации haproxy:

http-request del-header Origin
http-request del-header Referer
...