Я пытаюсь передать Ref (f) erer через перенаправление 301 с HTTPS domainA на HTTPS domainB с помощью рабочих облачных приложений.
1) Пользователь вводит https://domainA.com в поле адреса браузера, такие заголовки запроса отправляются на сервер:
Затем этот запрос обрабатывается таким воркером Cloudflare:
<...>
return new Response("Will Redirect", {
status: 302,
statusText: 'Found',
headers: {
Location: "https://domainB.com",
"Referrer-Policy": "unsafe-url"
}
})
<...>
Этот код генерирует такой HTTP-ответ:
Казалось бы, «пока все хорошо» - заголовок политики реферера установлен и появляется, но до заголовков Request / Reponse Chrome показывает «General» часть информации по тому же запросу:
Насколько я понимаю, ^ - это краткое описание комбинации запрос / ответ. Куда попала эта политика реферера: строка no-referrer-when-downgrade? Это параметр запроса Chrome по умолчанию или Chrome по умолчанию добавляет его в ответ? А может это какие-то настройки Cloudflare по умолчанию? Думаю, это одна из возможных причин, по которой я не могу пройти реферер.
Затем 302 редирект загружает доменB, и этот запрос обрабатывается вторым рабочим:
<...>
let refr = request.headers.get('Referer')
let resp = new Response(`Testing referer: ${refr}`)
resp.headers.set('Referrer-Policy', 'unsafe-url')
return resp
<...>
Второй запрос / ответ выглядит следующим образом:
Но ответ от domainB выглядит следующим образом:
Хотя я ожидаю увидеть реферер Testinf: domainA.com. Как мне этого добиться?
Спасибо!