开发环境中,我们一般通过两种方式解决跨域:
- 让后端设置CORS,允许我们请求。
- 前端在webpack中设置proxyTable{}代理。
后端地址
我们这里简单模拟一下后台就可以了,请求路径为
http://localhost:8080/normal
前端配置
安装axios
通过npm
安装axios
npm install axios --save
配置main.js
import axios from 'axios'
Vue.prototype.$axios = axios
axios.defaults.baseURL = '/api'
修改代理
打开vue项目config
文件夹下的index.js
在里面把proxyTable: {}
设置如下
proxyTable: {
'/api': {
target:'http://localhost:8080', // 请求后台的地址
changeOrigin:true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
pathRewrite:{ // 路径重写,
'^/api': '' // 替换target中的请求地址,相当于前台请求/api/xx会替换成http://localhost:8080/xx。
}
}
},
测试
this.$axios.get('/normal').then(res=>{
console.log(res)
})
fadsfsf厉害啦啊