React Native Fetch API无法禁用缓存 [英] React Native fetch API cannot disable caching
问题描述
我正在使用与redux集成的react native expo构建android应用.使用提取方法调用该API,但始终显示缓存的结果.服务器没有第二次收到请求.我尝试使用以下代码禁用缓存.
I am building android app using react native expo integrated with redux. The API is called using fetch method, but always the cached result is displayed. The server did not receive the request second time. I tried disabling cache with the following code.
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
};
}
当我通过Postman客户端调用API时,会看到不同的结果(未缓存).我尝试添加随机数作为参数并设置缓存控制标头,但仍返回缓存的结果.还有什么我可以尝试的.
When I call the API through Postman client I see different result(not cached). I tried adding random number as parameter and setting cache control headers, but still returning cached result. Is there is anything else I could try.
谢谢
推荐答案
在设置获取请求的标头时一定存在问题.
There must be a problem with how are you setting up the headers for fetching request.
尝试以下操作
您可以在官方提取中点击链接. API
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());
};
这篇关于React Native Fetch API无法禁用缓存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!