【问题标题】:Node-fetch Promise response property prints as undefinedNode-fetch Promise 响应属性打印为未定义
【发布时间】:2021-11-07 12:39:29
【问题描述】:

我知道有人问过很多类似的问题(请参阅 herehere),但我已经尝试了那里提到的解决方案,我试图弄清楚为什么我的 node-fetch 响应的行为不像预期的。这是代码的简单版本:

 fetch(new URL("https://www.stackoverflow.com")).then(theResponse =>{
      console.log("This prints OK: "); 
      console.log(theResponse.headers);
      console.log("But this prints as undefined:");
      console.log(theResponse.headers["content-encoding"]);
      return theResponse;
})

打印的标题是:

{
'accept-ranges': 'bytes',
'cache-control': 'private',
 connection: 'close',
'content-encoding': 'gzip',
 'content-security-policy': "upgrade-insecure-requests; frame-ancestors 'self' https://stackexchange.com",
etc.
}

为什么theResponse.headers["content-encoding"] 返回为undefined

【问题讨论】:

    标签: javascript promise fetch


    【解决方案1】:

    您需要使用.get method of the Headers object:

    console.log(theResponse.headers.get("Content-Encoding"));
    

    请注意,与 Map 或对象属性访问不同,它不区分大小写。

    【讨论】:

      【解决方案2】:

      也可以使用 Headers 对象的 getAll 方法 它返回一个数组

      console.log(theResponse.headers.getAll("Content-Encoding"));

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-09
        • 2018-08-03
        • 2021-02-04
        • 2019-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多