如何拦截 API 调用并使用 UserScript 显示来自它的数据?
How do I intercept an API call and display data from it using a UserScript?
有一个发出请求的网络应用程序(我们称之为 /api/item
)。此请求 returns 一个 json 正文,其中包含一个名为 itemData
的字段,通常对用户隐藏,但我想让它显示出来。
那么我如何制作一个用户脚本来侦听 /api/item
的请求并显示 itemData 字段?
作为参考,webapp 发出请求的方式是:
return Promise.resolve(new Request(e,r)).then(sendCookies).then(addLangParam).then(addCacheParam).then(addXsrfKey).then(checkZeroRating).then(function(e) {
return fetch(e)
}).then(checkStatus).then(checkApiVersionMismatch).then(checkApiResponse)
其中大部分是无关紧要的,但重要的部分是 Request
(我认为)。
此网络应用未使用 XMLHttpRequest,但 Fetch API。
您可以使用 fetch-intercept npm module 拦截获取请求。示例代码:
import fetchIntercept from 'fetch-intercept'
fetchIntercept.register({
response(response) {
console.log(response)
return response
}
})
您可以访问返回的承诺吗?
如果是,那么您可以再添加一个 "then"。
否则,您可以覆盖 "checkApiResponse"
有一个发出请求的网络应用程序(我们称之为 /api/item
)。此请求 returns 一个 json 正文,其中包含一个名为 itemData
的字段,通常对用户隐藏,但我想让它显示出来。
那么我如何制作一个用户脚本来侦听 /api/item
的请求并显示 itemData 字段?
作为参考,webapp 发出请求的方式是:
return Promise.resolve(new Request(e,r)).then(sendCookies).then(addLangParam).then(addCacheParam).then(addXsrfKey).then(checkZeroRating).then(function(e) {
return fetch(e)
}).then(checkStatus).then(checkApiVersionMismatch).then(checkApiResponse)
其中大部分是无关紧要的,但重要的部分是 Request
(我认为)。
此网络应用未使用 XMLHttpRequest,但 Fetch API。
您可以使用 fetch-intercept npm module 拦截获取请求。示例代码:
import fetchIntercept from 'fetch-intercept'
fetchIntercept.register({
response(response) {
console.log(response)
return response
}
})
您可以访问返回的承诺吗?
如果是,那么您可以再添加一个 "then"。 否则,您可以覆盖 "checkApiResponse"