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

Energylabel API在Postman调用正常但代码调用提示API密钥无效

Postman请求正常但代码调用失败截图
接口返回报错截图

排查方案(按踩坑概率从高到低排序)
  • 浏览器CORS/请求头差异问题(90%前端直连场景的根因)
    Postman是独立桌面客户端,不受浏览器同源策略约束,发请求不会自动带Origin/Referer头,也不会触发CORS预检。绝大多数第三方API会在网关层校验请求来源,如果你在React前端代码里直接调接口,浏览器会自动补上当前站点的Origin头,只要你的域名不在API服务商的白名单里,网关会直接拦截请求,根本不会把请求转发到后端校验API key,返回的「API key无效」只是通用报错,不是真的key错了。
    额外核对所有请求头:打开Postman内置控制台,把Postman实际发出的全部请求头(包括它自动补的User-Agent、Accept、Accept-Encoding等)和你代码里的请求逐行对比,缺的头手动补上,不要只看你自己手动加的几个头。
  • API key传值实际为空/格式错误
    1. 如果你把key存在React环境变量里,CRA脚手架要求客户端可读取的变量必须以REACT_APP_开头,Vite要求必须以VITE_开头,不符合前缀规则的变量会被构建工具替换为undefined,你以为传了key实际传了空值。
    2. 检查复制的key前后有没有多余空格、换行等不可见字符,放在Authorization头里的话,注意有没有漏了要求的前缀(比如Bearer 、Apikey ),前缀和key之间有没有多打空格。
    3. 如果key放在URL参数里,检查是否被URL自动转义破坏了原始格式。
  • Postman生成代码的固有bug
    不要完全信Postman自动生成的代码,它经常搞错参数位置、Body格式:
    • 核对API key的传参位置:是放在请求头、URL Query还是请求体里,不要放错位置
    • 核对请求体格式:你在Postman里选的是form-data、x-www-form-urlencoded还是raw JSON,生成的代码经常把格式写错
    • 核对请求方法:不要把POST写成GET
  • 本地代理/抓包工具干扰
    如果你本地开了代理、Charles/Fiddler等抓包工具,这类工具可能会篡改、删除请求里的自定义头(比如带API key的鉴权头),Postman走代理的规则和浏览器/Node环境不一样,可能不会被篡改,关掉所有代理、抓包工具再测试即可。

注意:不要在前端客户端代码里直接明文存第三方API key,所有用户都可以通过浏览器开发者工具拿到你的key恶意盗刷,正确做法是自己搭一层简单的后端服务做转发,把API key存在后端环境变量里,前端只请求你自己的后端接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:25:30