<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        解決前后端分離 vue+springboot 跨域 session+cookie失效問題

        來源:懂視網 責編:小采 時間:2020-11-27 21:57:02
        文檔

        解決前后端分離 vue+springboot 跨域 session+cookie失效問題

        解決前后端分離 vue+springboot 跨域 session+cookie失效問題:環境: 前端 vue ip地址:192.168.1.205 后端 springboot2.0 ip地址:192.168.1.217 主要開發后端。 問題: 首先登陸成功時將用戶存在session中,后續請求在將用戶從session中取出檢查。后續請求取出的用戶都為null。 解決過程: 首先發現sessio
        推薦度:
        導讀解決前后端分離 vue+springboot 跨域 session+cookie失效問題:環境: 前端 vue ip地址:192.168.1.205 后端 springboot2.0 ip地址:192.168.1.217 主要開發后端。 問題: 首先登陸成功時將用戶存在session中,后續請求在將用戶從session中取出檢查。后續請求取出的用戶都為null。 解決過程: 首先發現sessio

        環境:

        前端 vue ip地址:192.168.1.205

        后端 springboot2.0 ip地址:192.168.1.217

        主要開發后端。

        問題:

        首先登陸成功時將用戶存在session中,后續請求在將用戶從session中取出檢查。后續請求取出的用戶都為null。

        解決過程:

        首先發現sessionID不一致,導致每一次都是新的會話,當然不可能存在用戶了。然后發現cookie瀏覽器不能自動保存,服務器響應set-cookie了

        搜索問題,發現跨域,服務器響應的setCookie瀏覽器無法保存,而且就算保存了域名不同也不能攜帶。

        第一步:

        后臺添加過濾器,因為前后端分離,不可能每個方法都寫一遍,所以添加過濾器統一處理。

        package com.test.filter;
        import javax.servlet.*;
        import javax.servlet.annotation.WebFilter;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;
        import java.io.IOException;
        @WebFilter(urlPatterns = "/*", filterName = "CORSFilter")
        public class CORSFilter implements Filter {
         @Override
         public void destroy() {
         }
         /**
         * 此過濾器只是處理跨域問題
         * @param servletRequest
         * @param servletResponse
         * @param chain
         * @throws ServletException
         * @throws IOException
         */
         @Override
         public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws ServletException, IOException {
         HttpServletRequest req = (HttpServletRequest) servletRequest;
         HttpServletResponse resp = (HttpServletResponse) servletResponse;
         String origin = req.getHeader("Origin");
         if(origin == null) {
         origin = req.getHeader("Referer");
         }
         resp.setHeader("Access-Control-Allow-Origin", origin);//這里不能寫*,*代表接受所有域名訪問,如寫*則下面一行代碼無效。謹記
         resp.setHeader("Access-Control-Allow-Credentials", "true");//true代表允許攜帶cookie
         chain.doFilter(servletRequest,servletResponse);
         }
         @Override
         public void init(FilterConfig filterConfig) throws ServletException {
         }
        }

        springboot2.配置過濾器時,啟動類必須加上@ServletComponentScan才會加載過濾器

        @SpringBootApplication
        @EnableTransactionManagement(order = 10)
        @ServletComponentScan
        public class Application {
         public static void main(String[] args) {
         SpringApplication.run(Application.class, args);
         }
        }

        然后前端配置

        使用vue.resource發送請求時配置如下:
        main.js中
        Vue.http.options.xhr = { withCredentials: true }
        使用vue.axios發送請求時配置如下:
        axios.defaults.withCredentials = true;
        jquery請求帶上 xhrFields: {withCredentials: true}, crossDomain: true;
        $.ajax({
         type: "post",
         url: "",
         xhrFields: {withCredentials: true},
         crossDomain: true,
         data: {username:$("#username").val()},
         dataType: "json",
         success: function(data){ }
        });

        此時問題已解決。

        但我查看請求時,還是沒有帶cookie,太糾結于這一點了。以至于查看全部cookie時突然明白了。

        沒有帶cookie。

        瀏覽器全部cookie

        已經有服務器的cookie了。當向服務器發送請求時,會攜帶cookie,證明是同一會話。

        發現火狐的請求頭中存在cookie,不知道為什么谷歌的請求頭不顯示,不明白。望解答。

        總結

        以上所述是小編給大家介紹的解決前后端分離 vue+springboot 跨域 session+cookie失效問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        解決前后端分離 vue+springboot 跨域 session+cookie失效問題

        解決前后端分離 vue+springboot 跨域 session+cookie失效問題:環境: 前端 vue ip地址:192.168.1.205 后端 springboot2.0 ip地址:192.168.1.217 主要開發后端。 問題: 首先登陸成功時將用戶存在session中,后續請求在將用戶從session中取出檢查。后續請求取出的用戶都為null。 解決過程: 首先發現sessio
        推薦度:
        標簽: VUE cookie session
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲一区无码中文字幕乱码| 亚洲 无码 在线 专区| 亚洲熟妇丰满xxxxx| 一区二区三区观看免费中文视频在线播放 | 亚洲欧洲春色校园另类小说| 国产精品免费福利久久| 亚洲色偷偷综合亚洲AVYP| 亚洲国产免费综合| 亚洲伊人久久综合中文成人网| 日韩免费码中文在线观看| 国产一级淫片视频免费看| 爱爱帝国亚洲一区二区三区| 免费国产a国产片高清网站| 国产AV日韩A∨亚洲AV电影| 免费无遮挡无码永久在线观看视频| 久久亚洲中文字幕无码| 又大又黄又粗又爽的免费视频| 污视频网站免费在线观看| 亚洲国产精品日韩| 国产午夜不卡AV免费| 亚洲一卡2卡三卡4卡有限公司| 亚洲爆乳无码精品AAA片蜜桃| 午夜两性色视频免费网站| 免费看一级一级人妻片| 亚洲中文字幕久久精品无码APP| 国产精品免费福利久久| 天堂亚洲国产中文在线| 亚洲VA综合VA国产产VA中| a级黄色毛片免费播放视频| 无码乱人伦一区二区亚洲| 久久99九九国产免费看小说| 无码亚洲成a人在线观看| 国产AⅤ无码专区亚洲AV| 最近免费最新高清中文字幕韩国| 91丁香亚洲综合社区| 免费成人午夜视频| 久久爰www免费人成| 最新亚洲春色Av无码专区| 久久久无码精品亚洲日韩软件| 99免费在线观看视频| 亚洲av永久无码天堂网|