Для контекста я создаю заранее подписанный URL-адрес для загрузки на S3. Для этих запросов заголовок Cache-Control
должен быть установлен в значение public, max-age=31536000, immutable
.
Я выполняю выборку с помощью этого кода
fetch(
uploadUrl,
{
method: 'PUT',
cache: 'no-store',
headers: { 'Content-Type': contentType, 'Cache-Control': 'public, max-age=31536000, immutable' },
body: data
})
.then(response => {
if (response.ok) {
doneFunc(publicUrl);
} else {
failureFunc(response.status);
}
})
.catch(response => {
failureFunc(response.status);
});
С Chrome запрос PUT фактически отправляется с заголовком Cache-Control
, установленным в вызове fetch public, max-age=31536000, immutable
С Firefox запрос PUT отправляется с заголовком Cache-Control
, установленным в public, max-age=31536000, immutable, no-cache
. Обратите внимание на добавление no-cache
в конце. Это добавление делает мой предварительно подписанный URL недействительным.
Я попытался удалить параметр кеширования, установив для него значения no-cache
и no-store
. Firefox всегда добавляет что-то в заголовок Cache-Control
.
Знаете ли вы, как заставить Firefox вести себя как Chrome и уважать установленные мной заголовки?