Greasemonkey:另外一个拦截/修改获取请求的概念是啥?
Posted
技术标签:
【中文标题】Greasemonkey:另外一个拦截/修改获取请求的概念是啥?【英文标题】:Greasemonkey: one more what is the concept of intercepting/modifying fetch requests?Greasemonkey:另外一个拦截/修改获取请求的概念是什么? 【发布时间】:2022-01-12 09:10:52 【问题描述】:我已经在这里挖掘了所有问题,并且为了证明这个概念,我的理解是,如果我想从请求调用中获取响应 - 我必须更改网站实现的功能。由于我不是前端,所以不太明白应该怎么做……
我在 Greasemonkey 中有以下代码:
// ==UserScript==
// ==/UserScript==
(function()
let originalFetch = unsafeWindow.fetch;
console.log(originalFetch); //*1
unsafeWindow.fetch = function monitorFetch (x, y)
let response = originalFetch(x, y);
let respo = response.clone();
return response;
;
console.log(unsafeWindow.fetch); //*2
来自*1
的控制台打印
function monitorFetch (x, y)
*2
的控制台也会打印
function monitorFetch (x, y)
但是进行此更改的网站无法正常工作 - 没有抛出错误,我只是看到应该发出的请求没有发出。
我还尝试在网站 javascript 中找到这个原始的 monitorFetch
函数并将其复制粘贴到 Greasemonkey - 结果相同:没有错误,没有请求。
我想要的 - 只是捕捉响应,我什至不需要修改任何东西。
问题:我不理解什么,或者做错了什么,或者没有做什么?
版本:Greasemonkey v4.11
Firefox v81
【问题讨论】:
这能回答你的问题吗? Intercept fetch() API requests and responses in JavaScript 【参考方案1】:没关系。
总的来说 - 问题仍然存在。
但至于我的这个特殊情况 - 我很幸运:该网站将我要查找的数据保存在 unsafeWindow.localStorage
.
【讨论】:
以上是关于Greasemonkey:另外一个拦截/修改获取请求的概念是啥?的主要内容,如果未能解决你的问题,请参考以下文章