javascript – 禁用gmail api请求缓存
作者:互联网
我正在使用javascript gmail api来使用threadId获取电子邮件线程.
我使用以下代码:
var request = gapi.client.gmail.users.threads.get({
'userId': 'me',
'id': '123abc'
});
request.execute(function(response) {
var messages = response.messages;
});
这是第一次特定的threadId,它工作正常.并且对于进一步的请求,即使线程有更多的电子邮件,它也会返回相同数量的消息.
但是,如果我从Chrome开发者工具 – 网络选项中清除gapi网址的浏览器缓存,则响应会提供正确数量的电子邮件.
例:
– >使用threadId’123abc’执行请求,目前该帖子中有3封电子邮件.对于response.messages,请求的响应是正确的,长度为3.
– >然后我再发送一封电子邮件作为回复此线程,然后再次执行相同的请求.但是响应仍然是旧的响应,消息长度为3.
– >尝试多次运行相同的请求,但得到相同的响应.
– >然后清除了此URL的浏览器缓存并再次请求,现在响应正确,响应长度为4.
尝试在html页面中添加以下元标记,但不起作用:
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
尝试添加随机数与页面网址和请求,但没有工作.
尝试使用gapi脚本链接添加随机数,但无法正常工作< script src =“https://apis.google.com/js/client.js?onload=AuthIt\u0026amp;cacheBurster=123123123123”>< / script> ; 是否有任何代码可以禁用gapi请求缓存或任何其他方法来解决此问题?
解决方法:
最后通过在gapi请求中的’metadataHeaders’字段中添加一个随机数来得到解决方案:
var request = gapi.client.gmail.users.threads.get({
'userId': 'me',
'id': '123abc',
'metadataHeaders': Math.random()
});
标签:javascript,gmail-api,browser-cache,gapi 来源: https://codeday.me/bug/20190828/1756764.html