node.js - 使用 fetch API 时如何记录实际的请求 header

初学者问题,我在我的一个 Cloudflare Service Worker 中使用 fetch API 向第三方发送请求;一切正常,我可以发送请求并接收响应;但是现在我需要记录我发送和接收的所有内容,我不确定我该怎么做;

主要要求: 能够记录正在发送的整个请求 header

问题是我指定的请求 header 不是要发送的完整 header ,就像在下面的示例中我只指定了内容类型,但在实际应用中它会发送应用程序本身添加的更多属性,例如接受、x-forwarded-for、内容长度等。

要求:

    var toThirdPartyReqMethod = 'POST';
    var toThirdPartyReqHeader = {'content-type': 'application/json'};    
    var toThirdPartyReqSetting = {
      method: toThirdPartyReqMethod,
      headers: toThirdPartyReqHeader,
      body: toThirdPartyReqBodyArrayBuffer
    };
    var toThirdPartyUrl = "https://somewhere.com";

    var fromThirdPartyResponse = await fetch(toThirdPartyUrl, toThirdPartyReqSetting)

    var fromThirdPartyResponseBodyArrayBuffer = await fromThirdPartyResponse.arrayBuffer();

我可以使用 fromThirdPartyResponse 来消化响应;但我不知道如何记录我发出的确切请求。

我试过这样做:

var oriReqHeaderContentType = fromThirdPartyResponse.request.headers.get("content-type");

但显然这不是正确答案并返回以下错误:

TypeError: Cannot read property 'headers' of undefined

有人知道在使用 fetch API 时如何记录发送的请求吗?

很抱歉问初学者问题:(

最佳答案

你可以像这样访问请求头

const contentType = req.get("Content-Type");

https://stackoverflow.com/questions/58890219/

相关文章:

mysql - 在 macOS Catalina 10.15.1 下安装 DBD::mysql 时遇

javascript - 如何使用 ngx-export-as 中的选项

docker - 让 docker build --memory-swap=20g 使用可用的交换空

amazon-web-services - 您应该使用客户端凭据授权类型来验证服务器到服务器吗?

java - 如何设置不需要凭据的 Localstack 容器?

linux - Podman (libpod) 在使用 SELinux 上下文挂载 shm 时无法运

google-cloud-platform - 使用 --allow-unauthenticated

apache-zookeeper - Chubby Sequencer 的目的是什么

leaflet - 校正 Rayshader 的卫星图像覆盖

apache-spark - 使用来自 s3 存储桶的数据在 AWS EMR 上使用 pyspark