apache httpd - слияние заголовков игнорирует существующий заголовок

Используя apache mod_proxy 2.5, я пытаюсь объединить или заменить существующий заголовок access-control-allow-origin на mod_headers в расположении proxypass. ответ, возвращаемый из прокси-сервера, уже включает заголовок access-control-allow-origin, который я хотел бы объединить или заменить

Header always merge Access-Control-Allow-Origin  "*" 
Header always set Access-Control-Allow-Methods "OPTIONS, GET" 
Header always set Access-Control-Max-Age "1000" 
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token, x-smp-appcid"

Это приводит к дублированию заголовка, что вызывает ошибку во всех браузерах, поскольку этот заголовок может появиться только один раз.

то же самое для заголовка всегда устанавливается, хотя он должен заменить существующий заголовок.

Я также пытался использовать модуль if, чтобы сначала проверить наличие заголовков и установить его только в том случае, если он не установлен. но как-то сложно заглянуть в заголовки ответов.

любая помощь приветствуется


person Martin    schedule 18.05.2015    source источник


Ответы (1)


Я решил ту же проблему, установив заголовки Access-Control-Allow-Origin и Access-Control-Allow-Credentials только тогда, когда это предварительный запрос.

Второй запрос (POST, DELETE, PUT и т. д.), который обрабатывается прокси-сервером (который уже отправляет необходимые заголовки), не является предварительным запросом, и, следовательно, заголовки не будут снова устанавливаться Apache. правила.

Чтобы проверить предварительный запрос, вы можете проверить, содержит ли запрос:

  1. REQUEST_METHOD == ВАРИАНТЫ
  2. Метод запроса-управления-доступом !-= ""
  3. Происхождение != ""

Надеюсь это поможет.

person Agraj    schedule 09.10.2015