【发布时间】:2021-07-27 13:29:21
【问题描述】:
当我在浏览器中使用 javascript 进行提取(使用基本身份验证)时,我会收到屏幕截图中的响应。
这很好,但是为什么console.log(response.headers) 返回一个空对象呢?
我添加了 acces-control-expose-headers,因为这是一个 cors 请求,我想知道日期。
目标是缓存响应(缓存 API)并使用日期来获取缓存的年龄。 但缓存版本也不返回标头。 (但使用 chrome 中的开发工具,我可以看到所有标题都在缓存中)
下面是部分代码:
const cache = await caches.open('data');
let response = await cache.match(url)
if (!response) {
response = await fetch(url, {
headers: new Headers({
"Authorization": 'Basic 1234fake567=='
})
});
if (!response.ok) return dispatch(setError(response.status.toString()));
console.log(response.headers) // => {}
await cache.put(url, response)
response = await cache.match(url)
}
console.log(response.headers) // => {}
const apiData: ApiData = await response.json();
【问题讨论】:
-
你的脚本是什么?可以发一点吗?
-
试试
response.headers.forEach((value, key) => console.log(key, value));您也可以使用response.headers.get('...')获取单独的标头 -
您是否正在等待您的 fetch 正确?需要看代码。
-
我添加了一些代码
-
可能是因为SO post中提到的CORS限制?
标签: javascript cors http-headers