Deno中无法获取自定义请求头Aaaa和MOck-Query-Path的原因
问题原因及解决方法
核心原因
- HTTP头字段的标准化处理:HTTP协议规定头字段名大小写不敏感,Deno会自动将所有请求头的键转换为小写格式。你发送的
Aaaa会被转为aaaa,MOck-Query-Path会被转为mock-query-path,按原大小写取值自然无法获取到内容。 - 直接打印Headers对象无法展示实际数据:
req.headers是Headers实例,并非普通JS对象,直接console.log只能输出它的原型结构,看不到具体的键值对。
解决方法
方法1:用标准化后的字段名获取指定头
通过headers.get()方法,传入小写的字段名来获取对应值:
Deno.serve(async (req) => { const aaaa = req.headers.get('aaaa'); const mockQueryPath = req.headers.get('mock-query-path'); console.log('Aaaa:', aaaa); console.log('MOck-Query-Path:', mockQueryPath); return new Response('OK'); });
方法2:遍历所有请求头查看完整内容
如果需要查看全部请求头,可通过迭代器遍历Headers实例:
Deno.serve(async (req) => { console.log('所有请求头:'); for (const [key, value] of req.headers) { console.log(`${key}: ${value}`); } return new Response('OK'); });
内容的提问来源于stack exchange,提问作者Dg Foo
相关产品推荐
相关产品推荐

