使用webpack-simple脚手架构建的项目,在 webpack.config.js的devServer中增加proxy内容,设置代理
第一种:测试接口为: http://192.168.1.150:8000/api/rest/getClientMessage
1 devServer: { 2 historyApiFallback: true, 3 noInfo: true, 4 overlay: true, 5 // 配置服代理务器 6 proxy: { 7 '/api/*': { // 只要指向/api/的请求,都会自动代理到下面的target的地址 8 target: "http://192.168.1.150:8000", //对方服务器地址 9 secure: false,10 changeOrigin:true 11 }12 }13 }14 15 16 17 _feachData() { //这里请求自己服务器18 this.$http.get("/api/rest/getClientMessage").then( (res) => {19 console.log(res);20 let result = res.data;21 this.login = result;22 })
第二种: 接口为:http://192.168.1.150:8080/hydro/rest/getClientMessage( 会存在session丢失的问题)
1 devServer: { 2 historyApiFallback: true, 3 noInfo: true, 4 overlay: true, 5 // 配置服代理务器 6 proxy: { 7 '/webapp/api/*': { // 只要指向/webapp/api/的请求,都会自动代理到下面的target的地址 8 target: "http://192.168.1.150:8080/hydro", //对方服务器地址 9 pathRewrite: {10 '^/webapp/api':''11 },12 secure: false,13 changeOrigin:true 14 }15 }16 }17 18 _feachData() {19 this.$http.get("/webapp/api/rest/getClientMessage").then( (res) => {20 console.log(res);21 let result = res.data;22 this.login = result;23 })24 }
参考网址:Vue-cli代理解决跨域问题 https://www.jianshu.com/p/faa8303f8763
第三种:接口为"http://192.168.1.150:8080/hydro/xxx/xxx"
vue 前后端分离项目ajax跨域session问题解决:
问题:实现跨域请求时,每次ajax请求都是新的session,导致无法获取登录信息,所有的请求都被判定为未登陆。解决:把proxyTable的映射路径改成项目名就可以了1 // 配置服代理务器2 proxy: {3 '/hydro/': { // 只要指向/hydro/的请求,都会自动代理到下面的target的地址4 target: "http://192.168.1.150:8080", //对方服务器地址5 secure: false,6 changeOrigin:true 7 }8 }