编程语言
首页 > 编程语言> > javascript – 禁用gmail api请求缓存

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网址的浏览器缓存,则响应会提供正确数量的电子邮件.

例:

– &GT使用threadId’123abc’执行请求,目前该帖子中有3封电子邮件.对于response.messages,请求的响应是正确的,长度为3.

– &GT然后我再发送一封电子邮件作为回复此线程,然后再次执行相同的请求.但是响应仍然是旧的响应,消息长度为3.

– &GT尝试多次运行相同的请求,但得到相同的响应.

– &GT然后清除了此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&gt ; 是否有任何代码可以禁用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