【问题标题】:Response.header in console shows blank, but in the network tab there are headers [duplicate]控制台中的 Response.header 显示空白,但在网络选项卡中有标题 [重复]
【发布时间】:2022-01-23 18:30:11
【问题描述】:

我正在尝试以编程方式访问响应的标头。

PS:使用 Chrome。 如果我添加断点并检查响应对象,它看起来好像没有标头。

如果我尝试打印标题,这两个日志语句都会显示 {}:

    const response = await fetch(request);
    console.log('headers stringify:', response.headers);
    console.log('headers:', JSON.stringify(response.headers));

但是,在 Chrome 开发工具 Network 选项卡中,它显示响应具有标题。如何访问响应对象的标头?

【问题讨论】:

  • 您在“网络”选项卡中看到了哪些标题?当您使用get 访问其中之一时,您会看到什么? (例如,如果标题之一是 Example,那么 console.log(response.headers.get("Example")); 会得到什么?)
  • 我认为这个问题可能会对您有所帮助:stackoverflow.com/questions/48413050/… 简而言之:您看不到任何标题,因为您没有正确打印它们。

标签: javascript


【解决方案1】:

感谢@alittleSalty 提供的链接,它解释了标题是可迭代的,可以通过以下方式看到:

response.headers.forEach((value, key) => console.log("header:", key, 'value:', value));

【讨论】:

  • 如果 aLittleSalty 链接的答案回答了这个问题(这是有道理的),请不要将其作为答案发布,而是将问题作为副本关闭。
  • 很公平,尽管这个答案确实有价值,因为它显示了如何获取键/值对,对我来说,这些键/值对是按与预期相反的顺序提供的。
  • 如果那里没有显示答案,您可以将其发布在其他问题上。关键是将问题的答案放在一个地方。 :-)
  • (你也可以console.log(...response.headers);this。)
  • 好的,谢谢!我已投票决定关闭它,并将其标记为重复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
相关资源
最近更新 更多