我的Chrome扩展程序对HEAD请求的响应忽略了一个我需要的自定义标头,称为“ Replay-Nonce”。我认为这与CORS阻止它有关,但我不确定。奇怪的是,当我查看chrome dev工具中的请求/响应时,标题会出现。
奇怪的是,当我从常规网页(而不是扩展程序)中尝试请求时,我可以很好地获得Replay-Nonce标头。此外,IDK为什么但当我从扩展程序内执行请求时,没有像从网页发送请求时那样的OPTIONS预检请求。 chrome dev工具是否可能没有向我显示实际发送的OPTIONS请求,或者扩展程序是否未发送预检请求?
我认为服务器需要使用Access-Control-Allow-Headers标头进行响应,就像我向其发送POST请求时一样(来自扩展名的POST请求使我可以检索Replay-Nonce标头),但我不确定如何通过HEAD或GET请求在响应中获取该标头。
const res = await fetch(directory.newNonce, {
method: "HEAD"
})
// Returns null even though chrome dev tools shows the header
console.log("nonce: "+res.headers.get('Replay-Nonce'))