node调用第三方接口返回403?

第三方网站接口,https://core-api.prod.blur.io/v1/prices 浏览器直接打开可以正常访问(隐私模式无cookie),在node环境调用这个接口就返回403

let response = await fetch('https://core-api.prod.blur.io/v1/prices');
const data = await response.text();
console.log(data); //403

对第三方网站无法控制,如何能在node环境也正常调用该接口?

阅读 2.6k
1 个回答

第一种添加请求头,伪装一下
具体的你自己看一下浏览器成功访问的时候,有哪些请求头

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.3',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  }
});

第二种使用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);
  }
});
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
推荐问题