禁用 gmail api 请求缓存

Disable gmail api request caching

我正在使用 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 url 的浏览器缓存,响应会给出正确数量的电子邮件。

示例:

-> 执行了带有 threadId '123abc' 的请求,目前该线程中有 3 封电子邮件。 response.messages.

的请求响应长度为 3 是正确的

-> 然后我又发了一封邮件作为对该线程的回复,然后再次执行了相同的请求。但是对于 response.messages.

的响应仍然是长度为 3 的旧响应

-> 多次尝试 运行 相同的请求但得到相同的响应。

-> 然后为 url 清除浏览器缓存并再次请求,现在 response.messages.

的响应长度为 4 是正确的

尝试在 html 页面中添加以下元标记,但没有成功:

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

尝试在页面 url 和请求中添加随机数,但没有成功。

尝试使用 gapi 脚本添加随机数 link,但没有成功 <script src="https://apis.google.com/js/client.js?onload=AuthIt&cacheBurster=123123123123"></script>

是否有任何代码可以禁用 gapi 请求缓存或任何其他方法来解决此问题?

终于在gapi请求的'metadataHeaders'字段中添加了一个随机数得到了解决方案:

var request = gapi.client.gmail.users.threads.get({
  'userId': 'me',
  'id': '123abc',
  'metadataHeaders': Math.random()
});