proxyTable: { // 跨域請求 '/api': { // 注意此處可設置爲 '*' 表明不限制於某個接口,target下的全部接口均可以訪問 target:'http://www.webdomain.com', // 你請求的第三方接口 changeOrigin:true, // 在本地會建立一個虛擬服務端,而後發送請求的數據,並同時接收請求的數據,這樣服務端和服務端進行數據的交互就不會有跨域問題 pathRewrite:{ // 路徑重寫, '/api' 改成 '*'後此處要刪除 '^/api': '/api' // 替換target中的請求地址,也就是說之後你在請求 http://www.webdomain.com/dataxxx 這個地址的時候直接寫成/api便可。 } } },
build -> dev-server.js 引入相關依賴vue
var app = express() var apiRoutes = express.Router()
在指定位置配置代理接口webpack
var apiRoutes = express.Router() /** * @parameter '/getDataList' 本地代理接口,也就是說之後你在請求 * http://www.webdomain.com/dataxxx 這個地址的時候直接寫成/getDataList便可 * * */ apiRoutes.get('/getDataList', function (req, res) { var url = 'http://www.webdomain.cn/apidata' // 請求的數據接口 axios.get(url, { headers: { referer: 'http://www.webdomain.cn', host: 'www.webdomain.cn' }, params: req.query }).then((response) => { res.json(response.data) }).catch((e) => { console.log(e) }) })
build > webpack.dev.conf.js 引入相關依賴ios
var express = require('express') var axios = require('axios') var app = express() var apiRoutes = express.Router()
app.use('/api', apiRoutes);
在指定位置配置代理接口web
devServer: { before(apiRoutes){ // 添加before apiRoutes.get('/getDataList',(req,res)=>{ let url = 'http://www.webdomain.cn/apidata' axios.get(url, { headers: { referer: 'http://www.webdomain.cn/', host: 'www.webdomain' }, params: req.query //這是請求的query }).then((response) => { //response是api地址返回的,數據在data裏。 res.json(response.data) }).catch((e) => { console.log(e); }) }); }, },
調用代理接口express
/* 獲取用戶session數據 */ export function getUserSession () { const url = `${WEB_DOMAIN}/users/info` const datas = Object.assign({}, {}) return axios.get(url, {
params: datas
}).then(res => {
return Promise.resolve(res, datas)
})
}