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

通过Chrome DevTools复制的node-fetch请求在Node环境返回403错误

403 Forbidden错误排查:从Chrome DevTools复制node-fetch代码后运行失败的原因

以下是你可能遗漏的关键点,这些都是服务器返回403的常见原因:

  • 缺少Cookie字段:浏览器访问网站时会自动携带网站之前设置的Cookie(包含会话验证、用户状态等信息),但DevTools复制的请求代码通常不会包含Cookie。服务器会通过Cookie判断请求是否来自合法的浏览器会话,没有Cookie会直接拒绝访问。你需要在请求头里手动添加浏览器中该请求对应的Cookie字段。

  • 缺失标准User-Agent头:你提供的请求头里没有User-Agent字段,而浏览器请求都会带上这类标识(比如Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36)。node-fetch默认的User-Agent是node-fetch/x.x.x,服务器很容易识别出这不是浏览器请求,从而返回403。

  • 请求头中的HTML实体编码错误:你请求头里的sec-ch-ua、sec-ch-ua-platform等字段用了"(HTML实体双引号),这是DevTools的显示格式,实际浏览器发送的请求里是普通双引号。直接使用"会导致服务器无法正确解析这些客户端提示字段,触发反爬校验。需要把"替换成普通双引号,示例:

    'sec-ch-ua': '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"',
    'sec-ch-ua-platform': '"macOS"'
    
  • 可能的其他校验:部分服务器会校验请求头的顺序、是否有特定隐含头,或者通过TLS指纹识别请求来源(node-fetch的TLS指纹和浏览器不同),不过前三点是最优先的排查方向。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:10:31