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

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

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

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

引包ios

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域名去请求的,因此能请求成功vue-cli

相关文章
相关标签/搜索