908517142 发表于 2023-2-6 13:21:32

steven026 发表于 2023-2-6 13:05
这不是我以前写的代码么=-=
你是不是漏了个async/await
!(data/attachment/forum/202302/06/130506vk ...

'use strict';
let fetchHook={};
let hook_fetch=window.fetch; //储存原始fetch
window.fetch=async function(...args){ //劫持fetch
    debugger;
    //if(args.indexOf('https://inbound.tungee.com/service-tp-api/heartbeat/black-list')===0){
      return await hook_fetch(...args).then((oriRes)=>{
            let hookRes =oriRes.clone() //克隆原始response
            hookRes.text().then(res=>{ //读取克隆response
                console.log("RES",res);
            })
            return oriRes //返回原始response
      })
    //}
    return hook_fetch(...args)
}
}, this)}
//# sourceURL=chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/userscript.html?name=fetch%2520Hook%2520test.user.js&id=4f2e8fd5-5284-4773-a53c-6350bee6b38d
}

在这里进行断点调试,发现38个fetch请求,只有6个触发了这个方法
而后续按键在fetch/xhr里面新增的fetch一个都没有触发到这个脚本

steven026 发表于 2023-2-6 13:22:04

908517142 发表于 2023-2-6 13:12
尤其是后续按钮按下去触发的fetch请求,一个都检查不到

只有通过fetch请求的才会被这段代码劫持,如果不是fetch就不会
你最好先通过网络-发起程序-堆栈确定是不是fetch请求
如果确定是的话……我也不知道……建议问@李恒道 🙄

908517142 发表于 2023-2-6 14:12:36

steven026 发表于 2023-2-6 13:22
只有通过fetch请求的才会被这段代码劫持,如果不是fetch就不会
你最好先通过网络-发起程序-堆栈确定 ...

同一个页面的两个多个请求

这个获取不到
fetch("https://sales.tungee.com/api/unlock-leads?sort_field=create_time&sort=-1&begin=0&end=50", {
"headers": {
    "accept": "*/*",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "pragma": "no-cache",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin"
},
"referrer": "https://sales.tungee.com/unlock-list/enterprise",
"referrerPolicy": "no-referrer-when-downgrade",
"body": null,
"method": "GET",
"mode": "cors",
"credentials": "include"
}); ;

这个被成功获取
fetch("https://inbound.tungee.com/service-tp-api/heartbeat/black-list?tp_smart_service_cookie=Xtbfw8AzMc7hDM8CdyYflnvj0I6PNsvJacw%2F3cnohxQ%3D&expire_ts=1675647264660", {
"headers": {
    "accept": "*/*",
    "accept-language": "zh-CN,zh;q=0.9",
    "cache-control": "no-cache",
    "pragma": "no-cache",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-site"
},
"referrer": "https://sales.tungee.com/unlock-list/enterprise",
"referrerPolicy": "no-referrer-when-downgrade",
"body": null,
"method": "GET",
"mode": "cors",
"credentials": "include"
}); ;

我是真看不出来有什么区别 求哥哥指教

908517142 发表于 2023-2-6 14:59:50

steven026 发表于 2023-2-6 13:05
这不是我以前写的代码么=-=
你是不是漏了个async/await
!(data/attachment/forum/202302/06/130506vk ...

发现了问题,这个window.fetch可以正常抓取状态吗为200的fetch
但是状态码为200 OK的fetch全部都不触发,请问一下这是什么原因呢

steven026 发表于 2023-2-6 15:05:30

本帖最后由 steven026 于 2023-2-6 15:06 编辑

908517142 发表于 2023-2-6 14:59
发现了问题,这个window.fetch可以正常抓取状态吗为200的fetch
但是状态码为200 OK的fetch全部都不触发, ...
没见过 建议问问万能的 @李恒道 {:4_86:}

908517142 发表于 2023-2-6 16:08:25

steven026 发表于 2023-2-6 15:05
没见过 建议问问万能的 @李恒道

大神哥哥答了我两句就不在线了 ;;

王一之 发表于 2023-2-6 18:01:26

908517142 发表于 2023-2-6 16:08
大神哥哥答了我两句就不在线了 ;;

试试这个,你之前代码感觉有问题,另外得保证脚本的运行比你请求更快

```js
// ==UserScript==
// @name ajax Hook test
// @namespace    http://tampermonkey.net/
// @version      0.1
// @descriptiontry to take over the world!
// @author       You
// @match      https://sales.tungee.com/*
// @require https://scriptcat.org/lib/637/1.2.2/ajaxHooker.js
// @grant      none
// @run-at       document-start
// ==/UserScript==

ajaxHooker.hook(request => {
    request.response = res => {
      const responseText = res.responseText; // 注意保存原数据
      console.log(responseText);
    };
});
```

cxxjackie 发表于 2023-2-7 00:20:56

908517142 发表于 2023-2-6 11:22
我将那个ajaxhooker的库的源代码复制后写到本地txt文件,再改名为.js文件,复制文件位置引入脚本,然后在 ...

估计是设置没弄对,现在脚本站已经恢复了,直接引用就好,不用搞本地。你先试试这个库,如果库也抓不全,那可能是iframe问题,看本贴48楼的回复,前面有人遇到过。

908517142 发表于 2023-2-7 09:24:00

王一之 发表于 2023-2-6 18:01
试试这个,你之前代码感觉有问题,另外得保证脚本的运行比你请求更快

```js


谢谢 终于拿到了,这个引用的脚本真厉害

908517142 发表于 2023-2-7 09:24:57

cxxjackie 发表于 2023-2-7 00:20
估计是设置没弄对,现在脚本站已经恢复了,直接引用就好,不用搞本地。你先试试这个库,如果库也抓不全, ...

大神哥哥真厉害,你那个脚本能用了,一下就弄好了
我昨天把对面js解析后一个一个弄发现特别复杂,但是你这个脚本直接就把所有的数据都拿到了
谢谢
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: ajax劫持库ajaxHooker