ajaxHooker
有些请求无法抓取到
Resolved#835myaijarvisCreated At 4 months ago

作者你好,今天碰到一个问题,就是有些请求无法抓取到。

// @require      https://update.greasyfork.org/scripts/455943/1186873/ajaxHooker.js
// @run-at       document-start
// @grant        unsafeWindow

ajaxHooker.hook(request => {
    console.log(request.url);

直接输出所有url,有一些请求抓不到
比如https://www.toutiao.com/api/pc/list/user/feed?category=和https://www.toutiao.com/api/pc/list/feed?category= 这两个xhr请求
之前相同的配置和代码是可以正常获取并劫持的,今天发现就用不了了,麻烦作者帮忙看一下,最后会送杯咖啡以表敬意。

使用版本是1.2.4版本
【参考:使用filter后导致网站 部分正常请求 出现问题 · 反馈 #769 · ajaxHooker - ScriptCat

  • 这里有日志输出,说XHR 已完成加载,但ajaxHooker.hook(request => { console.log(request.url); 这里并没有输出该url
    image.png

  • 这个问题其实跟之前无法点赞的bug类似,都是头条对原生请求的方法使用了call、apply改变this指向,使得库对部分请求的处理出现异常,不过这次的倒是很好兼容,换个判断条件就好了,已更新1.4.1版本。
    之前无法点赞的问题依然存在,原因是当this指向Proxy对象时,原生方法会报错,这个问题很难避免,彻底解决的话必须对所有函数的call、apply做劫持(原函数被网页替换了,导致无法针对特定函数劫持),但这样代价太大了,而且在其他页面可能引入更多问题,我没找到更合适的方案。如果1.2.4符合你的需求,那我建议你继续引用旧版本,只是注意不要与引用了新版本的脚本一起工作。
    我之前更1.4.0的时候其实有尝试解决这个问题,但效果并不理想,后续如果我能想到什么别的方案,可能会继续跟进这个问题。

  • 我现在分别使用两个js版本,两个油猴脚本,解决了这个问题,非常感谢作者,麻烦作者有空贴个【赞赏码】到脚本简介里!

  • 我现在分别使用两个js版本,两个油猴脚本,解决了这个问题,非常感谢作者,麻烦作者有空贴个【赞赏码】到脚本简介里!

    解决了就好,赞赏就不用了,我不搞这一套的,全凭兴趣。

  • cxxjackie
    4 months agoClose Feedback
empty image
Please log in to post a comment
Labels
Watch
Participants