Vue中如果伺服器被限定了host如何用axois進行跨域請求?

曦沙飛舞發表於2018-03-06

首先說明一下為什麼要用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域名去請求的,所以能請求成功

相關文章