axios HTTPS GET在浏览器上工作,但不通过NodeJ

mwg9r5ms  于 2023-11-18  发布在  iOS
关注(0)|答案(1)|浏览(128)

我试图访问URL <https://www.valueresearchonline.com/api/funds/trailing-returns-chart-new-vro/420>。当我在Google Chrome上点击这个时,它工作得很好,我可以看到JSON响应。
我也试过通过Postman运行它,它有时能工作,但在其他示例上不工作(不改变任何东西)。
我在NodeJ上运行了下面的代码。执行时,它抛出错误AxiosError: Request failed with status code 403
我想知道是否有一种方法可以做到这一点,或者提供商是否已经在他们的终端做出了安排来阻止这种访问。
代码:

const axios = require('axios');
let data = '';

let config = {
  method: 'get',
  maxBodyLength: Infinity,
  url: 'http://www.valueresearchonline.com/api/funds/trailing-returns-chart-new-vro/420',
  headers: { 
    'Cookie': '__cf_bm=J3u3clWuAwwUtmjRRm8Ojm41_S9yajNcV7tiRIdIyz8-1698608766-0-AbTn9Nl7Rbw8l52fTeYfvBJyCgt//3MZgKr+8pTKMGQCDU6EYvnblBi/Ubc47cbamrkFO8U5osEfif/bFnu7lv8='
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

字符串

68de4m5k

68de4m5k1#

你的代码并没有什么问题,但是HTTP 403是禁止的,这意味着你可能没有正确地向API进行身份验证。
如果你想查看浏览器发送的内容,使用开发者工具,进入网络选项卡,右键单击请求,然后单击复制为>获取或 curl 。如果你使用获取,你可以将该命令粘贴到js文件中并直接运行它,或者如果你使用 curl (并且你在Linux/mac上),你可以直接将它粘贴到你的终端。
x1c 0d1x的数据

相关问题