很明顯,session無法被保存。但是直接在地址欄打開那個登錄頁面,一切都正常啊。真是奇怪啊。

在網上搜索了一下。發(fā)現這個問題 " /> 2017日日干,精品含羞草免费视频观看,色悠久久久久综合欧美99

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP關于IE下的iframe跨域導致session丟失問題解決方法

今天搞的一個登錄頁面,被別的網站用iframe嵌進去后,死活無法登錄(只在IE中存在這種情況)。

很明顯,session無法被保存。但是直接在地址欄打開那個登錄頁面,一切都正常啊。真是奇怪啊。

在網上搜索了一下。發(fā)現這個問題還真有不少人提及到。最后的解決方法是在那個登錄頁面里加上以下代碼:
復制代碼 代碼如下:
<span style="font-family:Microsoft YaHei; font-size:14px">header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');
session_start();</span>

可能這個問題跟我的登錄頁面是采用Javascript的location跳轉也有關。但沒有深入測試研究。

以下是拓展閱讀:

---------------------------------------------

今天在處理騰訊朋友應用的時候,測試給我發(fā)來個工單,說應用在IE7 上無法使用.出現登陸超時錯誤.

第一反應是session丟失了.

于是上網找了下 IE7 iframe session丟失問題.后來找到如下文章,問題解決:

=============================================

昨天,我在校內上做的時間日記終于上線了。上線第一天有80多個用戶安裝,但卻以外收到不少用戶的反饋說應用不可用。我之前都是在firefox上開發(fā)的(估計校內工作人員也是用firefox審核的),在使用IE7測試時,卻發(fā)現首頁之外的頁面全都無法正常打開。

在網上查找了許多資料,發(fā)現在IE7中存在這樣的問題:如果頁面中存在著一個或多個iframe的子頁面,那么在子頁面中創(chuàng)建session可能無 法成功,這樣session數據就無法和其他頁面所共享。在開發(fā)校內、51應用時,假設采用iframe方式,很可能會遇到這樣的問題。而且這個問題只存 在于IE7瀏覽器中,我在firefox, IE6和chrome等瀏覽器中測試均沒有問題。

解決方案是:在運行session_start之前,在程序中加上如下一句(以php語言為例),大致是向瀏覽器聲明一下安全級別,這樣iframe子頁面在創(chuàng)建session時就不會有問題了:

header('P3P: CP=”ALL ADM DEV PSAi COM OUR OTRo STP IND ONL”‘);

另外,我還了解到:如果二級域名中包含了下劃線,如:your_domain.yourhost.com,在建立和傳遞session時也可能會出現問題。

一點感想:

1)時隔多年,瀏覽器兼容性問題仍然沒有得到徹底解決,IE瀏覽器仍然是那么讓開發(fā)者感到痛苦和折磨。
2)發(fā)布應用前,一定要經過嚴密的瀏覽器兼容性測試,否則就有可能損失應用的第一批用戶。

==============================================

其他參考文章:

==============================================

解決iframe中jsessionid無法傳遞導致session丟失的問題

http://618119.com/archives/2007/12/19/48.html

在實現 ISMP2.1.1 接口的適合需要用到sso,而ISMP里定義的接口是需要在iframe等嵌入頁面中調用sso接口,在實際開發(fā)中發(fā)現session無法正常傳遞。

重現問題的場景是:

1.先訪問a站點:http://192.168.18.2/test.jsp

test.jsp的代碼為:
復制代碼 代碼如下:
<html>
<head>
<title> 618119.com </title>
</head>
<body>
<iframe src=”http://192.168.18.3/sso.jsp?ssoinfo=xxxx “>
</iframe>
</body>
</html>

sso .jsp里讀取傳遞的ssoinfo,反向調用ISMP認證接口,

生成session,然后放入指定的屬性值,

session .setAttribute(“ssoUser”,”lizongbo”);
頁面再重定向到 http://192.168.18.3/iframe.jsp

response.sendRedirect(“/iframe.jsp”);

iframe.jsp中讀取session中ssoUser的屬性值,會發(fā)現無法讀取。
2.如果先訪問了 192.168.18.3的頁面,再訪問192.168.18.2的頁面,此時的iframe嵌入是可以傳遞已生成好的jsessionid Cookie.

因此解決的辦法有:

a.在url中加上jsessionid.

例如重定向到 response.sendRedirect(“/iframe.jsp;jsessionid =lizongbo”);
而這種情況下,如果iframe.jsp頁面內的其它連接的url沒有加上jsessionid,

也無法繼續(xù)傳遞session,不過通過在客戶端的js來為每個超連接的href屬性重寫加上jsessionid.

b.sso.jsp里設置P3P頭信息
例如 P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”

或 P3P:CP=”CAO PSA OUR”

Java代碼為:

response.addHeader(“P3P”,”/”CAO PSA OUR/”");

php技術PHP關于IE下的iframe跨域導致session丟失問題解決方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 美国色情三级欧美三级纸匠情挑 | 高清bblxx手机在线观看 | 亚洲国产无线码在线观看 | 超碰人热人人热人人看 | 视频成人永久免费下载 | 中文字幕亚洲无线码高清不卡 | 轻轻挺进女教师的身体 | 午夜男人免费福利视频 | 中国人泡妞www免费 中国拍三a级的明星女 | 3dbdsm变态videos高清 | 99久久爱看免费观看 | 67194成网页发布在线观看 | 国产亚洲精品97在线视频一 | 亚洲2017天堂色无码 | 亚洲 小说 欧美 激情 另类 | 荡公乱妇HD中文字幕 | 99久在线国内在线播放免费观看 | 国产精品视频一区二区猎奇 | YY6080A旧里番在线观看 | 胸太大被男同桌吃好爽 | 娇小XXXXX第一次出血 | 国产啪视频在线播放观看 | 色妞色视频一区二区三区四区 | 视频在线观看高清免费看 | 女生下面免费看 | 拔擦拔擦8X永久华人免费播放器 | 囯产精品一品二区三区 | 一本色道久久综合亚洲AV蜜桃 | 95国产精品人妻无码久 | 毛片网站网址 | 欧美性类s0x | 欧美精品v欧洲高清 | 久久精品美女 | 狼群影院视频在线观看WWW | 久久人妻AV一区二区软件 | 热久久综合这里只有精品电影 | 麻豆免费观看高清完整视频 | 胖老太与人牲交BBWBBW高潮 | 精品一区二区三区在线成人 | 羞羞答答dc视频 | 欧美成人一区二免费视频 |