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

将带身份凭证的cURL请求转换为Node.js环境可用的fetch请求

原因

Node.js 环境没有提供浏览器端专属的 btoa() 全局方法,你之前的代码还存在凭证字符串末尾多冗余空格的问题,两者都会导致身份校验失败返回401。

解决方案

使用 Node.js 内置的 Buffer 模块完成 Base64 编码即可,和浏览器 btoa() 效果完全一致,适配 Donorbox 的 Basic Auth 校验规则,正确实现代码如下:

try {
  // 拼接身份凭证,不要加多余空格
  const authInfo = 'login@email.com:YOUR_API_KEY';
  // Node.js 标准Base64编码实现
  const base64Auth = Buffer.from(authInfo).toString('base64');

  const result = await fetch('https://donorbox.org/api/v1/campaigns', {
    headers: {
      'Authorization': `Basic ${base64Auth}`
    }
  });

  // 可选:提前判断响应状态,方便排查问题
  if (!result.ok) {
    throw new Error(`请求异常,状态码:${result.status}`);
  }
  const resData = await result.json();
  console.log('请求成功:', resData);
} catch (error) {
  console.log('ERROR');
  console.log(error);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:24:03