
在使用 Node.js 调用第三方 API 时,经常会遭遇令人头疼的 403 Forbidden 错误。尤其是在浏览器可以正常访问的情况下,Node.js 环境却返回 403,这该如何解决呢?本文将针对此问题提供有效的解决方案。
用户尝试调用 https://core-api.prod.blur.io/v1/prices 接口,浏览器(包括隐私模式)访问正常,但 Node.js 的 fetch API 调用却返回 403 错误。代码如下:
let response = await fetch('https://core-api.prod.blur.io/v1/prices');
const data = await response.text();
console.log(data); // 403由于无法修改第三方 API,需要找到在 Node.js 环境下成功调用的方法。
主要有两种方法可以尝试:
浏览器访问成功时,其请求头中包含了关键信息。我们可以通过观察浏览器请求头,并在 Node.js 中模拟这些头信息。示例代码如下:
let response = await fetch('https://core-api.prod.blur.io/v1/prices', {
headers: {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
'accept': 'application/json',
'content-type': 'application/json',
'authorization': 'Bearer your_access_token' // 替换为你的访问令牌
}
});请根据实际情况修改 user-agent 和 authorization 字段。 authorization 字段通常包含 API 密钥或访问令牌。
如果 CORS 限制是导致 403 错误的原因,可以使用 JSONP (JSON with Padding) 技术绕过限制。需要安装 jsonp 库:npm install jsonp
const jsonp = require('jsonp');
jsonp('https://core-api.prod.blur.io/v1/prices', null, (err, data) => {
if (err) {
console.error(err.message);
} else {
console.log(data);
}
});通过以上两种方法,可以尝试解决 Node.js 调用第三方 API 返回 403 错误的问题。 记住,authorization 头信息至关重要,请根据 API 文档正确设置。
以上就是在Node.js中如何解决第三方接口返回403的问题?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号