IE瀏覽器跨應用訪問失敗問題

2021-08-09 12:41:52 字數 973 閱讀 4677

由於專案需求,需要實現兩個應用間的頁面巢狀呼叫(主要是iframe巢狀)。巢狀訪問的場景需求,博主在被調頁面做了免登陸處理。本機測試ok,但是考慮到不同應用分機部署的場景,所以找了同事做分機呼叫處理。(這裡說明博主平時用的而是chrome做除錯,所以並沒有發現任何問題。)

分機測試時,巢狀頁面總是報錯。錯誤也非常奇葩,直接是被嵌入頁面的js被自己應用的登入頁的jsp內容重寫,博主開始一直以為自己免登陸對應的***的**敲錯了。最後進行多種嘗試之後發覺僅僅只有ie瀏覽器才會報類似的錯誤(主要是同事用的是ie,所以才發現的問題)。

最後才得出是session/cookie的影響,這裡解釋下:第一方session/cookie指的是訪客當前訪問的**給訪客的瀏覽器設定的seesion/cookie, 會被儲存在訪客的計算機上。第三方session/cookie指的是當前訪問的**中會載入(嵌入)另外第三方的****,例如**廣告,那麼第三方**也會在訪客的計算機上新增session/cookie,這種就是第三方session/cookie。

隨著ie版本的不斷更新,版本之間變化很大,其相容性問題困擾著許多開發者。本問題也不例外,ie7以後,微軟逐漸改進了ie安全性,其中預設設定下第三方session/cookie是不允許使用的,這就造成了使用iframe嵌入式訪問另外的第三方**時,不能為其儲存會話狀態,無法進行登入或跨越取值,從而影響第三方**功能的使用。

處理方法:

**中使用p3p協議自動更改ie瀏覽器安全級別,

p3p(platform for privacy preferences)是一種可以提供這種個人隱私保護策略。具體做法是在被iframe嵌入的第三方****中加入如下**:

res.setheader("p3p","cp=\"cao psa our\"");//相容ie安全性問題,使介面第三方session和cookie可以正常使用

瀏覽器訪問跨域問題

專案中遇到乙個問題 用ajax來獲取資料,但返回的status為0,從瀏覽器的列印看應該是跨域問題 origin file has been blocked by cors policy response to preflight request does not pass access contr...

IE瀏覽器跨域訪問提示未登入

最近在做專案的過程中涉及了乙個ie瀏覽器的相容性問題,google瀏覽器和火狐瀏覽器都能夠正常訪問選項卡上的請求鏈結。但是在ie瀏覽器中卻總是提示未登入,請登入。一開始以為是請求方式有問題,需要採用post請求並且自己帶上token。後來仔細一想,如果是這個樣子的話,在google瀏覽器和火狐瀏覽器...

瀏覽器跨域訪問WebApi

在預設情況下這兩個網域名稱屬於兩個不同的域,他們之間的互動存在跨域的問題,但因為他們都同屬於乙個二級網域名稱下,所以通過簡單的設定就能實現跨域行為,但是考慮到實際生產環境中往往會出現兩個網域名稱 完全不同的情況,所以這裡不考慮這種特殊的情況,使用更通用的方法來解決跨域的問題。首先在webapi上有如...