Vue中如果服务器被限定了host如何用axois进行跨域请求?

首先说明一下为什么要用axois进行跨域请求:
在某些网站里面你想进行跨域,他再headerqurest里的host设置了只有特定的域名发送的请求才能获取,这个前端是没有办法改的,所以我们用服务器代理的方式来请求。

在这里我们是再vue-cli讲的例子:
package.json里安装axios和install一下

1 首先进入build文件夹下的dev-server.js

引包

var axios = require('axios')

2 找到var apiRoutes = express.Router()下面添加

apiRoutes.get('/getDiscList', function(req, res) {
  var url = 'https://baidu.com/fcgi-bin/fcg_get_diss_by_tag.fcg'  //请求的地址 

  axios.get(url, {
    headers: {
      referer: 'https://baidu.com',  //设置自己的referer
      host: 'baidu.com'   //设置自己的host
    },
    params: req.query
  }).then(response => {
    res.json(response.data)
  }).catch(error => {
    console.log(error)
  })
})

这样通过服务器代理就会认为是baidu域名去请求的,所以能请求成功

    原文作者:曦沙飞舞
    原文地址: https://segmentfault.com/a/1190000013552145
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞