【发布时间】:2019-12-03 01:56:52
【问题描述】:
我正在使用 GitHub API 来请求需要更新的通知。问题是我的浏览器经常从浏览器缓存而不是从 Internet 加载我的请求的答案,这当然不是最新的。
为了防止这种情况并告诉浏览器不要使用缓存,我读到应该使用Cache-Control 标头。
问题是 GitHub API 在其 Access-Control-Allow-Headers 中似乎没有 Cache-Control 标头,因此我不允许在我的请求中使用 Cache-Control 标头。
那么,如果我不允许使用 Cache-Control 标头,我应该如何防止我的浏览器从缓存中加载响应?为什么 GitHub API 首先禁止 Cache-Control 标头,有什么好的理由吗?
只是为了提供更多上下文,我在 JavaScript 中使用 fetch API 并尝试了下面的代码
res = await fetch('https://api.github.com/notifications', {method: 'Get',
headers: {
'accept': 'application/vnd.github.v3+json',
'authorization': "token " + token,
'Cache-Control': 'no-cache'
}});
我收到错误消息:
从原点获取 'https://api.github.com/notifications' 的访问权限 'http://127.0.0.1:5500' 已被 CORS 策略阻止:请求 头字段缓存控制不允许 预检响应中的 Access-Control-Allow-Headers。
您能推荐我解决我的问题的最佳解决方案吗?
【问题讨论】:
-
您可以尝试使用查询参数破坏缓存吗?
https://api.github.com/notifications?cachebust=123456?
标签: javascript http cors github-api fetch-api