中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何解決PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“如何解決PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何解決PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題”吧!

為安康等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及安康網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站制作、安康網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

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

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

在網(wǎng)上搜索了一下。發(fā)現(xiàn)這個(gè)問題還真有不少人提及到。最后的解決方法是在那個(gè)登錄頁面里加上以下代碼:


復(fù)制代碼 代碼如下:

<span >header('P3P: CP="ALL ADM DEV PSAi COM OUR OTRo STP IND ONL"');
session_start();</span>



可能這個(gè)問題跟我的登錄頁面是采用javascript的location跳轉(zhuǎn)也有關(guān)。但沒有深入測(cè)試研究。

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

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

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

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

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

一點(diǎn)感想:

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

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

解決iframe中jsessionid無法傳遞導(dǎo)致session丟失的問題

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

重現(xiàn)問題的場(chǎng)景是:

1.先訪問a站點(diǎn):http://192.168.18.2/test.jsp

test.jsp的代碼為:


復(fù)制代碼 代碼如下:

<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,反向調(diào)用ISMP認(rèn)證接口,

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

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

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

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

因此解決的辦法有:

a.在url中加上jsessionid.

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

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

b.sso.jsp里設(shè)置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/”");

到此,相信大家對(duì)“如何解決PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:如何解決PHP關(guān)于IE下的iframe跨域?qū)е聅ession丟失問題-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.rwnh.cn/article36/copdsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、做網(wǎng)站、標(biāo)簽優(yōu)化、移動(dòng)網(wǎng)站建設(shè)、軟件開發(fā)網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
佛冈县| 新郑市| 阜新| 穆棱市| 辛集市| 肥东县| 六盘水市| 昆明市| 蕲春县| 韩城市| 宁化县| 尉犁县| 海南省| 湛江市| 娱乐| 西盟| 内乡县| 三门峡市| 内黄县| 睢宁县| 新田县| 来宾市| 七台河市| 广灵县| 固阳县| 林芝县| 屯昌县| 泉州市| 台湾省| 林西县| 达日县| 龙南县| 资源县| 太仆寺旗| 得荣县| 资源县| 沁源县| 沐川县| 碌曲县| 建阳市| 万荣县|