为了账号安全,请及时绑定邮箱和手机立即绑定

vue axios springboot前后端分离项目为什么前台无法获取后台返回的cookie?

vue axios springboot前后端分离项目为什么前台无法获取后台返回的cookie?

喵喔喔 2019-01-17 02:25:46
看了个文章明白了 http://www.ruanyifeng.com/blog/2016/04/cors.html 文章中有说:3.2:需要注意的是,如果要发送Cookie,Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名。同时,Cookie依然遵循同源政策,只有用服务器域名设置的Cookie才会上传,其他域名的Cookie并不会上传,且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。 请注意 且(跨源)原网页代码中的document.cookie也无法读取服务器域名下的Cookie。 前台可读取的 headers: "content-type": "application/json;charset=UTF-8" ​haha: "woshikaikai" 响应头: Accept application/json, text/plain, */* Accept-Encoding gzip, deflate Accept-Language zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Connection keep-alive Content-Length 26 Content-Type application/json;charset=utf-8 Cookie token=eyJhbGciOiJIUzI1NiJ9.eyJ…XiYBLEsjAAo4zUv3vhDPLckUcVfIY Host 192.168.1.107:8088 Origin http://127.0.0.1:8080 Referer http://127.0.0.1:8080/login User-Agent Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/62.0 后端服务器设置: Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { //设置允许跨域的路径 registry.addMapping("/**") //设置允许跨域请求的域名 .allowedOrigins("http://127.0.0.1:8080") //是否允许证书 不再默认开启 .allowCredentials(true) //设置允许的方法 .allowedMethods("*") .allowedHeaders("*") .exposedHeaders(HttpHeaders.SET_COOKIE, "haha") //跨域允许时间 .maxAge(3600); } } 但是即使后台设置了 .exposedHeaders(HttpHeaders.SET_COOKIE) 前台也是无法获取cookie的 问题描述 我也看了很多跨域文章总的就是说 后台这两个配置一下 .allowedOrigins("http://g3.zk1.local.csljc.com:8083") //是否允许证书 不再默认开启 .allowCredentials(true) //给请求的返回内容中写入cookie public static void writeCookie(HttpServletResponse response, String cookieName, String value) { Cookie cookie = new Cookie(cookieName, value); cookie.setPath("/"); cookie.setMaxAge(3000 * 60); cookie.setDomain("g3.zk1.local.csljc.com"); response.addCookie(cookie); } 前台: const axios = Axios.create({ baseURL: 'http://192.168.51.194:8021', // api的base_url withCredentials: true, timeout: 30000 // request timeout }) 访问前台项目地址为 http://g3.zk1.local.csljc.com:8083 后台api接口地址为: 192.168.51.194:8021 参考了https://www.cnblogs.com/nuccc... 我看网上人家都说这么配置就行了,为啥我这里不行啊
查看完整描述

4 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

cookie你是无法获取的,只能由后端进行读写

查看完整回答
反对 回复 2019-02-12
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

可以获取,你把请求响应的头贴出来看看

查看完整回答
反对 回复 2019-02-12
  • 4 回答
  • 0 关注
  • 4140 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号