Получить и передать более одного файла cookie в заголовках «Set-Cookie» в Cloudflare Worker.

Этот вопрос не является дубликатом Установите более одного файла cookie в заголовке Set-Cookie в рабочем файле cloudflare header.set('Set-Cookie' function.

Я пытаюсь передать 3 заголовка Set-Cookie, которые рабочий процесс получает из одного восходящего ответа, и передать их клиенту. Я не создаю заголовок Set-Cookie из рабочего, поэтому Headers.append() не имеет отношения к этому вопросу.

Однако я обнаружил, что каким-то образом после вызова fetch() только первый заголовок Set-Cookie распознается fetch(). Два других просто игнорируются. Независимо от того, использую ли я getAll() или get(), я вижу только первый заголовок Set-Cookie. Если я передам response.header непосредственно Response, клиент сможет получить только первый заголовок Set-Cookie.

Является ли это ошибкой Fetch API? Является ли это ошибкой или нет, как я могу обойти эту проблему?

Спасибо!

Код, относящийся к этому вопросу:

if(method == 'POST'){
         let origin_formData = await request.text()
         data = {
             method: method,
             headers: new_request_headers,
             body : origin_formData
         }
}
let original_response = await fetch(url.href, data)
console.log(original_response.headers.get('Set-Cookie'));
console.log(new_response_headers.getAll('Set-Cookie'));

Последние две строки всегда показывают первые Set-Cookie из ответа на запрос POST.

Полный код доступен здесь: https://gist.github.com/umonaca/7d3505979247f8508018ca0926828bab
(Примечание: вы можете запускать код только в локальной среде обработчика. Онлайн-среда отладки Cloudflare не работает для этого кода.)


person nokogiri    schedule 21.12.2020    source источник
comment
Я протестировал и не смог найти никаких проблем с чтением нескольких заголовков set-cookie или передачей их клиенту. Ваш код очень сложный. Не могли бы вы сократить его до чего-то более короткого, что демонстрирует проблему? Вы уверены, что исходный сервер действительно возвращает несколько заголовков set-cookie?   -  person Kenton Varda    schedule 21.12.2020