You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

node-fetch调用API报错api key is not a legal HTTP header如何解决

报错产生原因

这个错误是node-fetch对HTTP请求头的合规性校验触发的,RFC7230规范明确要求HTTP头值不能包含ASCII控制字符(包括零宽空格、换行、回车、制表符等不可见字符),触发报错的常见场景如下:

  • 从配置文件读取的API_Key值包含不可见控制字符:多数是复制JWT密钥时意外带入了零宽空格、首尾换行/空格,或是JSON配置文件存储时给值多加了转义符、多余引号。
  • 构造Authorization头时产生了不符合规范的字符:比如Bearer和密钥之间多打了空格,或是密钥本身被意外转义。
修复方案

按优先级依次尝试以下操作即可解决:

  1. 先校验密钥原始值,在请求前加一行打印代码,确认值是否正常:
console.log('密钥原始值:', `|${api_config.API_Key}|`)

如果打印结果中|和密钥之间有空白,或是存在奇怪的乱码占位,直接修改配置文件清理多余字符即可。
2. 对密钥值做强制清洗,构造头时过滤所有控制字符+清理首尾空白:

'Authorization': "Bearer " + api_config.API_Key.trim().replace(/[\x00-\x1F\x7F-\x9F]/g, '')
  1. 可选优化:GET请求无请求体,不需要传Content-type请求头,可以直接删掉减少冗余。

内容的提问来源于stack exchange,提问作者Shawn Stensberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:54:00