为什么使用了后端代理还是报invalid referer?

我尝试抓取qq音乐歌单的歌曲列表信息的时候,想使用后端代理进行跨域,但是还是报invalid referer,不明白问题在哪。

export function getSongList(disstid) {
  const url = '/api/getSongList';
  const data = {
    disstid,
    type: 1,
    json: 1,
    utf8: 1,
    format: 'json',
    g_tk: 5381,
    loginUin: 1666707506,
    hostUin: 0,
    inCharset: 'utf8',
    outCharset: 'utf-8',
    notice: 0,
    platform: 'h5',
    needNewCode: 1,
    new_format: 1,
    onlysong: 0,
    picmid: 1,
    nosign: 1,
    song_begin: 0,
    song_num: 100,
    _: 1541664934895,
  };

  return axios.get(url, {
    params: data,
  }).then(res => Promise.resolve(res.data));
}

后端

  app.get('/api/getSongList', function(req, res) {
    const url = 'https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg';
    axios.get(url, {
      headers: {
        referer: 'https://c.y.qq.com',
        host: 'c.y.qq.com'
      },
      params: req.query
    }).then((response) => {
      res.json(response.data);
    }).catch((e) => {
      console.log(e);
    })
  });

前面的的后端代理请求都是可以获得数据的,
但是控制台console的response是这样

clipboard.png
查询字符串是没问题的,我看了一下

clipboard.png
这里的host和referer好像都没变,是后端代理写错了吗?

阅读 3.5k
1 个回答

User-Agent加上试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题