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解析后一个一个弄发现特别复杂,但是你这个脚本直接就把所有的数据都拿到了
谢谢