这几天做个小项目遇到了跨域问题,于是就用了webpack的proxy解决,用的挺爽的,但是做到登录之后,因为服务端使用cookie和sessionid做登录状态保存的,结果就悲催了,我发现它没有将cookie保存起来,简单来说就是我们本地用的是localhost,与我们跨域所用的域名对不上,网上看了下几位大神的博客都对我的项目没有什么作用,于是我又看了下http-proxy-middleware的文档,也就是webpack 实现proxy所使用的插件,最后发现了关键型的一个参数(浏览器渣翻)
option.cookieDomainRewrite:重写set-cookie标题的域。可能的值:
false (默认值):禁用cookie重写
字符串:例如新域cookieDomainRewrite: "new.domain"。要删除域,请使用cookieDomainRewrite: ""。
对象:将域映射到新域,用于"*"匹配所有域。
例如,保持一个域不变,重写一个域并删除其他域:
cookieDomainRewrite: {
"unchanged.domain": "unchanged.domain",
"old.domain": "new.domain",
"*": ""
}
没错,它可以把Domain路径重写,所以,我们只需要加上这么一段话
"/api": {
target: "http://xxxxxx.com",
changeOrigin: true,
pathRewrite: {
'^/api': '/'
},
cookieDomainRewrite: "localhost",
},
这样我们的问题也就解决了,希望能帮到大家