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

相關文章
相關標籤/搜索