欢迎光临散文网 会员登陆 & 注册

vue3解决跨域问题

2022-01-08 12:05 作者:忘魂儿  | 我要投稿

跨域,跨的是不同域,也就是协议主机或或端口号不同造成的现象

一般情况下就算后端,把访问源全部放开也会出现这种现象,所以我们前端自己解决

这里我采用的是vue-cli中webpack涉及的代理proxy

在使用代理之前,我想先说明一下,我们平常在测试接口的时候,是在本地,而不是服务器,所以我们也就需要两个url

开发时,在本地就用代理,生产时(上线时)也就用正常的服务器ip+端口

那么项目打包后也就是上线,项目serve就是开发,这很好理解

所以,我们需要建立两个文件,第一个为.env.development,第二个为.env.production

在.env.development中

VUE_app_BASE_URL=/api

在.env.production中

VUE_app_BASE_URL=http://服务器ip:端口

在axios封装里面

axios.defaults.baseURL=process.env.VUE_app_BASE_URL

axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'

//post请求头

axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8";

那么,区分开发和生产就完成了

接下来就写代理吧,

项目根目录下建立vue.config.js文件


只需要看最后的devServer部分

我们把http://124.70.108.80:3000用/api代替了,也就是说我们只要使用/api就是前面的地址

允许改变源(changeOrigin)必须为true,ws也就是websocket

使用的时候


vue3解决跨域问题的评论 (共 条)

分享到微博请遵守国家法律