Node.js 如何在使用fetch API时记录实际的请求头

Node.js 如何在使用fetch API时记录实际的请求头,node.js,fetch,service-worker,fetch-api,Node.js,Fetch,Service Worker,Fetch Api,初学者问题,我正在使用我的一个Cloudflare服务人员中的FetchAPI向第三方发送请求;一切正常,我能够发出请求并收到响应;但现在我需要记录我发送和接收的所有信息,我不知道如何才能做到这一点 主要要求: 能够记录发送的整个请求标头 问题是,我指定的请求头不是要发送的完整头,就像在下面的示例中,我只指定了内容类型,但在实际操作中,它将发送更多由应用程序本身添加的属性,例如accept、x-forwarded-for、content length等 请求: var toThirdPa

初学者问题,我正在使用我的一个Cloudflare服务人员中的FetchAPI向第三方发送请求;一切正常,我能够发出请求并收到响应;但现在我需要记录我发送和接收的所有信息,我不知道如何才能做到这一点

主要要求: 能够记录发送的整个请求标头

问题是,我指定的请求头不是要发送的完整头,就像在下面的示例中,我只指定了内容类型,但在实际操作中,它将发送更多由应用程序本身添加的属性,例如accept、x-forwarded-for、content length等

请求:

    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();
我能够使用FromThird Party response来消化响应;但我不知道如何记录我发出的确切请求

我试着这样做:

var oriReqHeaderContentType = fromThirdPartyResponse.request.headers.get("content-type");
但显然这不是正确的答案,返回时出现以下错误:

TypeError:无法读取未定义的属性“headers”

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


很抱歉问初学者问题:(

您可以像这样访问请求标题


const contentType=req.get(“Content Type”);

您可以像这样访问请求头


const contentType=req.get(“Content Type”);

是的,我也知道这一点;但是在使用fetch()时如何做同样的事情?我只知道如何通过这个var resp=wait fetch(url,req)使用fetch;问题是,我不能使用req,因为Cloudflare Service Worker本身添加了一些请求头,但我没有指定,例如cf visitor、cf ew via等等,我也知道这些;但在使用fetch()时如何做同样的事情?我只知道如何通过这个var resp=wait fetch(url,req)使用fetch;问题是,我无法使用req,因为Cloudflare Service Worker本身正在添加一些请求头,但我没有指定,例如cf visitor、cf ew via等等。您是否试图从浏览器中运行的前端JavaScript代码访问请求头?如果是,答案是您不能-浏览器添加requ在前端JavaScript代码运行后,它自己的est头。因此,您无法从前端JavaScript代码访问完整的请求头集。您可以访问的唯一请求头是您在自己的前端代码中显式设置的请求头。否则,您无法通过编程确定其他请求头浏览器发送的请求中可能包含浏览器的标题。是否尝试从浏览器中运行的前端JavaScript代码访问请求标题?如果是,答案是不能-在前端JavaScript代码运行后,浏览器会添加自己的请求标题。因此,无法访问完整的请求标题来自前端JavaScript代码的一组请求头。您可以访问的唯一请求头是您在自己的前端代码中显式设置的请求头。否则,您无法通过编程方式确定浏览器发送的请求中可能包含哪些其他头。