1
我正在开发一个扩展,用于按文件的内容类型阻止下载。这是后台脚本的一部分,该处理头接收:通过Chrome扩展按内容类型阻止下载
chrome.webRequest.onHeadersReceived.addListener(function(details) {
var headers = details.responseHeaders;
for(var i = 0, l = headers.length; i < l; ++i) {
if(headers[i].name == "Content-Type" && headers[i].value == "<some_type>") {
return {cancel: true};
}
}
}, {urls: ["<all_urls>"]}, ["responseHeaders", "blocking"]);
我也得到页面错误信息:
所以我需要一些解决方案,以保持用户以前的页面上无需重新加载,以显示这个错误页面或者在显示之后以某种方式从该服务页面移回。
Thx,它工作的很棒! – mmatviyiv
@RobW给定的解决方案不能阻止下载,只使用“return”会导致下载开始。 –
@adnankamili为了解决这个问题,你可以将'content-type'头部改为不可下载的文本/纯文本,添加'content-type-options:no-sniff'(以禁用MIME嗅探)。虽然老实说,这个答案是一个真正的黑客。如果你的意图是取消一个请求,那么你应该真的使用'{cancel:true}'。 –