逻辑:浏览器往页面发送请求获得页面数据,往服务器发送请求获得数据,再渲染到页面
在前端vue中处理跨域问题,主要就是要让浏览器往页面请求页面数据与数据,可是页面中并没有数据,这时候就需要页面往服务器请求数据,再发送给浏览器。需要告诉页面,当接收到哪个接口,就需要作为代理,往浏览器中发送请求。
1.删除axios的baseURL根路径,这样浏览器就会自动在后面补上当前页面的根路径
const TimeOut = 5000 // 定义超时时间
// 定义时间戳
const request = axios.create({
// 根路径在process.env中找,找到的是/api
// 当为开发服务器模式时,会在.env.development中寻找根路径
baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
TimeOut // 超时时间
})
2.在vue.config.js中配置代理,proxy。告诉页面当接收到来自浏览器的没有根路径的请求时,需要作为代理往真正的服务器发送请求。
devServer: {
proxy: {
// 告诉页面,当请求的跟路径未''时,自动补全根路径
'': {
target: 'http://120.24.171.137:1337',
changeOrigin: true
}
}