Skip to content

Web API - FAQ

Headers

headers 出现 map 场景

环境 : QQ 浏览器

headers.map 出现的情况是:当 options.headers 是一个 Headers 实例(Web API)而不是普通对象时。

原因分析

Headers 是浏览器的 Web API 类,内部使用类似 Map 的结构存储键值对。当你对 Headers 实例使用展开运算符 ... 时:

javascript
options.headers = {
	...options.headers,  // 如果这是 Headers 实例
	...headers,
}

某些环境下(特别是 polyfill 或特定浏览器实现),展开操作可能会将 Headers 内部的 map 属性也复制出来,导致最终对象包含一个非预期的 map 字段。

触发场景

当调用方这样传入 headers 时:

javascript
useAppFetch('/api/xxx', {
	headers: new Headers({ 'X-Custom': 'value' })  // 传入 Headers 实例
})