这段时间接触一个项目,本地开发run serve 后,打开浏览器输入本地地址,开发会遇到调用接口正常丢了需要依赖的cookie的情况,不同域名下的cookie无法共享,这就导致在本地开发的过程中,虽然在vue-cli的config下做了跨域设置,能够调用到接口,但是却无法请求到数据的问题。
1。接手的项目, 本地运行之后有个登陆拦截(登陆页是单独已经部署在服务器上属于公共页面),选择登陆成功之后会回掉本地地址,在这期间有个sso认证,成功后后端生成的cookie会返回本地,但是这个cookie携带的是在一级域名下面。当你本地取cookie时就会涉及不再一个域名下面是无法拿到对应的cookie,没有cookie进行下一步很难,页面无法打开。
针对这个问题,我想到直接将开发环境的域名配置成所需要的域名,即在vue.config.js中进行配置:
配置好要代理的地址,本地端口号改为80
module.exports = {
devServer: {
disableHostCheck: true,
port: ’80’,
‘^/api/’: {
target: ”http://xxxxxxxx’ //配置所需域名’
}
}
}
之后在本地的hosts文件中配置地址映射,我们需要找到hosts文件更改
win系统目录(c盘windows/System32–>drivers–>etc)找到hosts文件 文本编辑打开 修改
mac系统(查找文件/etc下面的hosts)(https://zhuanlan.zhihu.com/p/343066455)
参考图可以看的清楚
127.0.0.1 x需要的地址x
然后修改config/index下的proxyTable设置,将端口修改为80端口,之后再重新启动服务:
1 npm run dev 或 有淘宝镜像的cnpm
2 mac 需要管理员运行 sudo npm run serve
在MAC下启动端口需要使用root模式,也就是sudo使用sudo npm run dev即可正确运行项目