<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
        主站蜘蛛池模板: 成年人免费的视频| 农村寡妇一级毛片免费看视频| 本免费AV无码专区一区| 日韩精品电影一区亚洲| 黄色网址免费在线| 亚洲精品国产高清嫩草影院| 国产免费播放一区二区| 国产成A人亚洲精V品无码| 久久久久国产精品免费看| 久久久久久亚洲av成人无码国产| 国产午夜无码精品免费看| 中文字幕亚洲色图| 夜夜嘿视频免费看| 边摸边吃奶边做爽免费视频网站| 亚洲视频在线免费| 免费毛片a线观看| 亚洲欧洲自拍拍偷午夜色| 我要看WWW免费看插插视频| 亚洲AV电影天堂男人的天堂| 亚洲国产婷婷香蕉久久久久久| 99久久精品毛片免费播放| 亚洲欧洲日产韩国在线| 无码一区二区三区免费视频 | 免费国产真实迷j在线观看| 免费国产在线精品一区| 亚洲国产精品一区第二页 | 午夜dj在线观看免费视频| 国产午夜亚洲精品不卡电影| 亚洲综合伊人久久综合| 97av免费视频| 亚洲av成人片在线观看| 亚洲欧洲自拍拍偷午夜色无码| 亚洲免费人成视频观看| 大桥未久亚洲无av码在线| 久久久久久久尹人综合网亚洲 | 免费在线观看一区| 亚洲今日精彩视频| 在线免费观看韩国a视频| 久久免费公开视频| 国内成人精品亚洲日本语音 | 国产精品亚洲一区二区三区在线|