国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

頁面嵌入iframe Cookie丟失問題解決

這篇具有很好參考價值的文章主要介紹了頁面嵌入iframe Cookie丟失問題解決。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

頁面嵌入iframe Cookie丟失問題解決

遇到的問題

自身頁面以iframe的形式嵌入三方頁面中,雙方域名不一致導致自身頁面的cookie被某些瀏覽器攔截無法正常被保存到客戶端文章來源地址http://www.zghlxwxcb.cn/news/detail-801487.html

解決方案
  1. 后端將cookie以鏈接參數(shù)的形式帶給前端
  2. 前端在請求接口的時候?qū)ookie放在請求頭(這里無法直接在請求頭放置Cookie參數(shù),需要使用一個新的參數(shù)來放置Cookie)
  3. 后端使用攔截器獲獲取請求頭中Cookie副本解析后重新放置到Cookie中
后端部分實現(xiàn)示例代碼
解析獲取Response中的Cookie
// 從Response Header 中的 Set-Cookie解析
for (String cookie : response.getHeaders("Set-Cookie")) {
    cookie = cookie.split(";")[0];
    String[] split = cookie.split("=", 2);
    cookieMap.put(split[0], split[1]);
}
后端攔截器設置設置Coookie
@Component
@Order(1)
public class HeaderCookieFilter implements Filter {

    private static final Logger log = LoggerFactory.getLogger(HeaderCookieFilter.class);
    private final String HEADER_COOKIE_KEY = "identityKey";

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        try {
            HttpServletRequestWrapper customRequest = (HttpServletRequestWrapper)request;
            JSONObject cookieInfo = check(request);
            //如果校驗通過
            if(cookieInfo!=null) {
                Cookie[] cookies = new Cookie[cookieInfo.size()];
                // 修改cookie
                Iterator<String> iterator = cookieInfo.keySet().iterator();
                for (int i = 0; i < cookieInfo.keySet().size(); i++) {
                    String key = iterator.next();
                    String value = cookieInfo.getString(key);
                    Cookie cookie = new Cookie(key, value);
                    cookies[i] = cookie;
                }
                request = new CustomRequest(customRequest, cookies);
            }
        }catch (Exception e){
            log.error("header transfor cookie error",e);
        }
        chain.doFilter(request,response);
    }

    @Override
    public void destroy() {
    }

    private JSONObject check(ServletRequest request) throws UnsupportedEncodingException {
        HttpServletRequestWrapper customRequest = (HttpServletRequestWrapper)request;
        // 不存在identityKey請求頭,直接跳過
        String allCookieStrEncode = customRequest.getHeader(HEADER_COOKIE_KEY);
        boolean hasHeaderCookie = StringUtils.isNotEmpty(allCookieStrEncode);
        if(!hasHeaderCookie){
            return null;
        }
        String cookieStr = URLDecoder.decode(allCookieStrEncode, CharEncoding.UTF_8);
        JSONObject cookieInfo = JSON.parseObject(cookieStr);
        return cookieInfo;
    }
    class CustomRequest extends HttpServletRequestWrapper {
        Cookie[] cookies;
        public CustomRequest(HttpServletRequest request, Cookie[] cookies) {
            super(request);
            this.cookies = cookies;
        }
        @Override
        public Cookie[] getCookies(){
            return cookies;
        }
    }
}

到了這里,關于頁面嵌入iframe Cookie丟失問題解決的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • uniapp B站iframe嵌入APP及視頻全屏不橫屏問題處理 Android端

    uniapp B站iframe嵌入APP及視頻全屏不橫屏問題處理 Android端

    問題:視頻界面能進入全屏,但視頻不橫屏 方法一 :視頻界面設置允許橫屏,手機豎屏鎖定取消。(未采用) 效果及問題:全屏后,手機橫屏后,視頻會橫屏。但取消全屏后,視頻界面還是橫屏著,體驗不太好。 方法二 :視頻界面設置允許橫屏,通過onResize監(jiān)聽窗口尺寸變

    2024年02月03日
    瀏覽(18)
  • vue項目關于iframe嵌套的頁面,在切換tab標簽時會被重新刷新的問題處理方案

    這兩天工作中遇到一個這樣的需求,切換tab標簽時,要求對應的tab頁面不刷新,但是項目中加入了一部分含有iframe的頁面,在切換路由的過程中,如果使用keep-alive是達不到緩存ifram嵌套的頁面效果的。 vue中的keep-alive 1.原理:vue 的緩存機制并 不是直接存儲 DOM 結(jié)構(gòu) ,而是將

    2024年02月04日
    瀏覽(59)
  • cookie和localstorage在iframe中的應用

    背景: 現(xiàn)有項目中有一個用戶中心系統(tǒng),里面用iframe嵌入不同項目的頁面,多個項目公用一個token 解決方案: 子頁面通過url參數(shù)的方式傳遞token, 在url拿到token之后,剛開始將token存入localstorage中,但localstorage是永久保存,在瀏覽器關掉之后,再重新打開頁面,只要token沒有

    2024年02月08日
    瀏覽(16)
  • vue3 動態(tài)添加路由刷新后頁面丟失(白屏)問題

    vue3 動態(tài)添加路由刷新后頁面丟失(白屏)問題

    動態(tài)添加路由操作一般是用vuex或者Pinia封裝,在登錄頁面調(diào)用 如果出現(xiàn)刷新頁面丟失有兩種可能: 1:vuex或者Pinia沒有做持久化處理 2:動態(tài)添加路由需要在main.ts里面也調(diào)用一次 不需要路由守衛(wèi)即可實現(xiàn) 注意:必須要在頁面掛載前還有路由配置完成前調(diào)用添加,不然還是丟

    2024年02月16日
    瀏覽(30)
  • uniapp web-view頁面層級過高,想在web-view上層再加入按鈕,采用plus.nativeObj.View實現(xiàn)。動態(tài)創(chuàng)建web-view解決切換src后丟失背景問題。

    uniapp web-view頁面層級過高,想在web-view上層再加入按鈕,采用plus.nativeObj.View實現(xiàn)。動態(tài)創(chuàng)建web-view解決切換src后丟失背景問題。

    需求 :有兩個web-view頁面,需要添加按鈕,動態(tài)切換web-view的src進行頁面切換 問題 :uniapp的web-view層級很高,通過positon的z-index無法將其他元素置于web-view頁面上層 解決方式 :采用底層組件plus.nativeObj.View創(chuàng)建視圖,該視圖比web-view層級高,可在web-view上層添加 按鈕,圖片,矩

    2024年02月11日
    瀏覽(60)
  • 解決Iframe交互事件window.addEventListener觸發(fā)多次問題

    addEventListener() 方法用于向指定元素添加事件句柄。 提示: 使用 removeEventListener() 方法來移除 addEventListener() 方法添加的事件句柄。 當我們審批流交互用到window.postMessage結(jié)合window.addEventListene這種消息傳遞技術(shù)來實現(xiàn)安全的通信。簡單的來講就是進行事件交互,如當我們有以下

    2024年02月11日
    瀏覽(14)
  • Selenium 解決html中的嵌套問題(xpath中存在iframe)

    Selenium 解決html中的嵌套問題(xpath中存在iframe)

    selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:“xpath”,“selector”:\\\"/… 在已確定頁面元素全部加載完成,并且確定xpath路徑正確的情況下,可以考慮是否存在標簽嵌套或者存在iframe標簽的情況。 iframe標簽可以將一個HTML文檔嵌入在一個

    2024年02月12日
    瀏覽(29)
  • 解決selenium訪問網(wǎng)頁中多個iframe,導致無法鎖定元素的問題

    獲取全部的iframe列表 調(diào)試獲取目標iframe 使用: browser.switch_to.frame(目標iframe) 退回到原有的狀態(tài): browser.switch_to.default_content() 不同的iframe之間的元素無法被selenium鎖定,因此需要通過人為調(diào)試,得到具體的iframe窗口,進入目標iframe后才能夠進行元素的鎖定,鎖定后就得到目標

    2024年02月22日
    瀏覽(23)
  • 如何在 WordPress 中嵌入 iFrame

    如何在 WordPress 中嵌入 iFrame

    ?? 個人網(wǎng)站:【海擁】【摸魚游戲】【神級源碼資源網(wǎng)站】 ?? 前端學習課程:??【28個案例趣學前端】【400個JS面試題】 ?? 想尋找共同學習交流、摸魚劃水的小伙伴,請點擊【摸魚學習交流群】 ?? 免費且實用的 前端刷題(面經(jīng)大全)網(wǎng)站:??點擊跳轉(zhuǎn)到網(wǎng)站 博主前些

    2024年01月21日
    瀏覽(18)
  • Java中整數(shù)相除并保留兩位小數(shù)的實現(xiàn)方式、保留兩位小數(shù):Java中整數(shù)相除的處理方法、解決Java整數(shù)相除后精度丟失的問題、Java數(shù)值計算:整數(shù)相除保留指定小數(shù)位數(shù)的技巧

    當在Java中需要進行整數(shù)相除并保留兩位小數(shù)時,可以使用以下兩種方式實現(xiàn): 1. 使用浮點數(shù)類型和DecimalFormat進行格式化: ?2. 使用BigDecimal類進行精確的數(shù)值計算和格式化輸出: 在選擇使用哪種方式時,需要根據(jù)具體的業(yè)務需求和數(shù)值計算的精度要求進行權(quán)衡和選擇。如果

    2024年02月12日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包