Google chrome 如何在Chrome中更改响应标题

Google chrome 如何在Chrome中更改响应标题,google-chrome,google-chrome-extension,header,response,Google Chrome,Google Chrome Extension,Header,Response,我正在处理互联网上的一些mp3链接 当使用Chrome developer工具时,我看到一些链接的响应头带有内容类型:application/octet stream(像这样的链接会强制Chrome下载),一些链接的响应头带有内容类型:audio/mpeg(像这样的链接允许Chrome流畅地播放) 是否有允许更改响应标题的Chrome扩展?因为我想更改内容类型,请参见 下面是一个修改https://www.google.com/转换为文本/纯文本 chrome.webRequest.onHead

我正在处理互联网上的一些mp3链接

当使用Chrome developer工具时,我看到一些链接的响应头带有
内容类型:application/octet stream
(像这样的链接会强制Chrome下载),一些链接的响应头带有
内容类型:audio/mpeg
(像这样的链接允许Chrome流畅地播放)

是否有允许更改响应标题的Chrome扩展?因为我想更改内容类型,请参见

下面是一个修改
https://www.google.com/
转换为文本/纯文本

chrome.webRequest.onHeadersReceived.addListener(details => {
    let header = details.responseHeaders.find(e => e.name.toLowerCase() === 'content-type') ;
    header.value = 'text/plain';
    return {responseHeaders: details.responseHeaders};
}, {urls: ['https://www.google.com/']}, ['blocking', 'responseHeaders']);

请注意,您必须在
manifest.json
中声明
webRequest
webRequestBlocking
权限@方 觉 我应该把这个代码放在哪里?我需要写一个新的扩展吗?@Yamamoto将代码放在你的背景脚本中。如果您使用的是事件页面而不是后台页面,那么您应该使用chrome.declarativeWebRequest(下一个chrome稳定版本将支持它)。奇怪的是,根据日志,事件处理程序被执行,头被更改,但这对正在加载的页面没有影响-它的http头保持不变(根据开发者视图)。没有错误。有什么想法吗?@Stan,我发现这个答案中的例子对我很有用。但是,将头文件从
应用程序/octet流更改为其他文件时,未能阻止Chrome尝试保存该文件。也许@entropy没有测试它。@Stan,在我的例子中,解决这个问题的方法是查找并删除任何内容处置头。但是,我建议将标题的
附件
值更改为
内联
,以便文件名信息不会丢失(如果存在)。