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)
})
}