關於瀏覽器調試不顯示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),但是調試沒有進,就沒問題了,也不知道到底為啥。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM