如何拦截 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"