有没有可能禁用特定mime类型的下载。例如,访问默认会下载zip归档文件的url,应该不会有任何反应。
编辑:
我事先不知道将访问哪个url以及该url将返回什么。
有没有可能禁用特定mime类型的下载。例如,访问默认会下载zip归档文件的url,应该不会有任何反应。
编辑:
我事先不知道将访问哪个url以及该url将返回什么。
适合我的解决方案:
const client = await page.target().createCDPSession();
// intercept request when response headers was received
await client.send('Network.setRequestInterception', {
patterns: [{
urlPattern: '*',
resourceType: 'Document',
interceptionStage: 'HeadersReceived'
}],
});
await client.on('Network.requestIntercepted', async e => {
let headers = e.responseHeaders || {};
let contentType = headers['content-type'] || headers['Content-Type'] || '';
let obj = {interceptionId: e.interceptionId};
if (contentType.indexOf('application/zip') > -1) {
obj['errorReason'] = 'BlockedByClient';
}
await client.send('Network.continueInterceptedRequest', obj);
});
如果这是由页面生成的请求,您可以使用setRequestIntercept
停止该请求。
await page.setRequestInterception(true);
page.on('request', request => {
if (request.url().endsWith('.zip'))
request.abort();
else
request.continue();
});
这是一个请求拦截。这意味着您应该能够在请求发出之前推断出您将要下载的文件。
响应拦截尚未实现。所以我认为这是您现在可以得到的最好结果。