关于浏览器调试不显示Cookie的问题
在学习前后端分离的时候要求跨域,携带cookie,在postman测试是有cookie显示的,但是在Firefox和Chrome调试的时候能获取到cookie携带的值,但是F12查看不到cookie,在这个地方断断续续困扰了两天,最后发现原来是路径的问题,之前一直用的idea打开的前端页面,默认路径是localhost:8080...

后面发现把localhost改成127.0.0.1之后,就能显示cookie了

补充一点:
之后又发现一个问题
在后端添加了监听器之后,貌似只能用127.0.0.1登录了,用localhost登录直接会被判定为未登录然后返回登录页面,还没弄明白是为什么


又发现一个问题,昨天搞完之后,今天打开项目,localhost登录弹回,127登录也弹回,代码没改,没找到问题,但是调试后端,在boolean flag = fasle打了个断电发现,再重新启动就发现没问题了(可能是我看不懂调试结果)
1 package com.kgc; 2 3 import com.alibaba.druid.util.StringUtils; 4 import com.alibaba.fastjson.JSONObject; 5 import com.kgc.utils.Result; 6 7 import javax.servlet.*; 8 import javax.servlet.annotation.WebFilter; 9 import javax.servlet.http.Cookie; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 import java.io.IOException; 13 import java.io.PrintWriter; 14 import java.net.URLDecoder; 15 16 /** 17 * 登录过滤器 18 */ 19 @WebFilter(urlPatterns = "/view/*") 20 public class LoginFilter implements Filter { 21 @Override 22 public void init(FilterConfig filterConfig) throws ServletException { 23 24 } 25 26 @Override 27 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 28 //校验用户登录状态 29 HttpServletRequest request = (HttpServletRequest) servletRequest; 30 HttpServletResponse response = (HttpServletResponse) servletResponse; 31 32 //Filter过滤器跨域处理 33 String origin = request.getHeader("Origin"); 34 response.setHeader("Access-Control-Allow-Origin",origin); 35 response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); 36 response.setHeader("Access-Control-Max-Age", "3600"); 37 response.setHeader("Access-Control-Allow-Methods", "x-request-with,Authorization"); 38 response.setHeader("Access-Control-Allow-Credentials", "true"); 39 40 Cookie[] cookies = request.getCookies(); //从request拿到cookie 41 boolean flag = false; 42 if (cookies != null && cookies.length > 0){ //有cookie 43 for (Cookie cookie:cookies) { 44 String name = cookie.getName();//获取cookie的名称 45 String value = cookie.getValue();//获取cookie的值 46 if (name.equals("USER_LOGIN") && !StringUtils.isEmpty(value)){ 47 //已登录,放行 48 flag = true; 49 filterChain.doFilter(servletRequest,servletResponse); 50 break; 51 } 52 } 53 } 54 if (!flag){ 55 //未登录,相应数据(用到HttpServlertRsponse) 56 String string = JSONObject.toJSONString(new Result(null, "未登录", 103));//把result对象转成json字符串 57 //相应的地方设置内容的类型(json/text),编码格式 58 response.setContentType("json/text;charset=utf-8"); 59 PrintWriter out = response.getWriter();// 取出输出流,response.getWriter()返回的是PrintWriter,这是一个打印输出流 60 out.write(string);//相应JSON字符串string 61 } 62 } 63 64 @Override 65 public void destroy() { 66 67 } 68 }
调试:



本来返回登录界面应该是进了if(!flag),但是调试没有进,就没问题了,也不知道到底为啥。。。

浙公网安备 33010602011771号