React API Native Fetch не может отключить кеширование
Я создаю приложение для Android, используя реакцию native expo, интегрированную с redux. API вызывается с использованием метода выборки, но всегда отображается результат кэширования. Сервер не получил запрос второй раз. Я попытался отключить кеш следующим кодом.
export const mymails = (token) => {
return fetch(
API_URL+'?random_number='+ new Date().getTime(), {
method: 'GET',
headers: getHeaders(token)
})
.then(response => response.json());
};
getHeaders = (token) => {
return {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Token token='+token,
'Cache-Control': 'no-cache, no-store, must-revalidate',
'Pragma': 'no-cache',
'Expires': 0
};
}
Когда я вызываю API через клиент Postman, я вижу другой результат (не кешированный). Я попробовал добавить случайное число в качестве параметра и настроить заголовки управления кешем, но все равно возвращать результат кэширования. Есть ли что-нибудь еще, что я мог бы попробовать.
Спасибо
Ответы
Ответ 1
Должна быть проблема с настройкой заголовков для запроса на выборку.
Попробуйте следующее:
Вы можете перейти по ссылке для этого в официальном API-интерфейсе Fetch
const mymails = (token) => {
var myHeaders = new Headers();
myHeaders.set('Accept', 'application/json');
myHeaders.set('Content-Type', 'application/json');
myHeaders.set('Authorization', 'Token token=' + String(token));
myHeaders.set('Cache-Control', 'no-cache');
myHeaders.set('Pragma', 'no-cache');
myHeaders.set('Expires', '0');
return fetch(
API_URL + '?random_number=' + new Date().getTime(), {
method: 'GET',
headers: myHeaders
})
.then(response => response.json());
};
Ответ 2
В том числе "Pragma": "no-cache" в разделе заголовка работал для меня !!