博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
阅读量:5878 次
发布时间:2019-06-19

本文共 817 字,大约阅读时间需要 2 分钟。

在官方文档()中,中断 redirect 的标准做法是这样的:

const puppeteer = require('puppeteer');puppeteer.launch().then(async browser => {  const page = await browser.newPage();  await page.setRequestInterception(true);  page.on('request', interceptedRequest => {    if (interceptedRequest.url().endsWith('.png') || interceptedRequest.url().endsWith('.jpg'))      interceptedRequest.abort();    else      interceptedRequest.continue();  });  await page.goto('https://example.com');  await browser.close();});

这样一开始也是没有什么问题,但是偶尔会遇到这样情况:

Error: net::ERR_FAILED at http://xxx.com/yyy

Google 了一轮,发现相关的 issue 很少,只找到了这么一个:

官方已经把它定义为一个 Bug 了,也有一些相关的解决方案:

不过其他人遇到的情况是 abort() 之后无法结束的问题,而我是抛出异常的问题,所以我自己摸索了一下,总结出一个比较合适的办法:

就是用 respond 代替 abort。

比如:

// request.abort();request.respond({  status: 404,  contentType: 'text/plain',  body: 'Not Found!',});

转载地址:http://qdcix.baihongyu.com/

你可能感兴趣的文章
oracle常用函数
查看>>
MYBATIS
查看>>
详解消息队列的设计与使用
查看>>
iOS 项目优化
查看>>
筛选出sql 查询结果中 不包含某个字符
查看>>
8进制与16进制
查看>>
使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
查看>>
mybatis:Invalid bound statement (not found)
查看>>
电脑中毒的现象
查看>>
django表单操作之django.forms
查看>>
webSocket vnc rfb
查看>>
列表推导式 生成器表达式
查看>>
控制子窗口的高度
查看>>
Linux 防火墙iptables命令详解
查看>>
打造笔记本电脑基地重庆要当全球“老大”
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
《JAVA与模式》之简单工厂模式
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
一个简单的运算表达式解释器例子
查看>>