1. 程式人生 > >IE下嵌入iframe獲取session問題

IE下嵌入iframe獲取session問題

IE下嵌入iframe跨域獲取session問題.

做一個單點登陸的頁面,  自動登陸另一個域地址下的網站.  方法: 在當前頁面嵌入iframe, 用javascript模擬自動登陸:

<html>
<head></head>
<body>
<form name="frm" action="http://1.1.1.1/system/login.do" method="post">
		<input type="text" name="userName" value="username"> 
                <input type="password" name="password" value="password">
</form>
	<script language="JavaScript" type="text/JavaScript">
		function submitFrm() {
			document.frm.submit();
		}
                submitFrm();
	</script>
</body>
</html>



以上程式碼在Chrome下通過, 但是在IE下不行, 無法獲取到session. 

網上查了一下, 原因和瀏覽器許可權有關, 詳細的不說了,可以去了解一下P3P的相關作用.

改進:

STEP 1 : 在被嵌入系統的登陸頁, 新增P3P設定 ,  設定方法

STEP 2: 修改頁面針對IE處理:  嵌入頁中, 再新增一個iframe來引用剛才設定了P3P的JSP頁面.

<form name="frm" action="http://1.1.1.1/system/login.do" method="post">
		<input type="text" name="userName" value="username"> 
                <input type="password" name="password" value="password">
</form>
	<script language="JavaScript" type="text/JavaScript">
		function submitFrm() {
			document.frm.submit();
		}
                
var iframe = document.createElement("iframe");
		iframe.src = "http://1.1.1.1/system/login.jsp";


		if (iframe.attachEvent){ // IE
		    iframe.attachEvent("onload", function(){
		    	 submitFrm();
		    });
		    document.body.appendChild(iframe);
		} else {
		    	submitFrm();
		}
	</script>


相關推薦

IE嵌入iframe獲取session問題

IE下嵌入iframe跨域獲取session問題. 做一個單點登陸的頁面,  自動登陸另一個域地址下的網站.  方法: 在當前頁面嵌入iframe, 用javascript模擬自動登陸: <html> <head></head> <

IEiframe列印時,頁面比例變小

在IE下,列印iframe裡面的內容,我發現頁面比例是60%,但是firefox和chrome下是好的。 這隻能說明是瀏覽器差異造成的。 查了大量文件,發現 使用 window.print 列印iframe時,比例就是不對,要使用IE自身的列印函式:document.exe

IEiframe跨域session和cookie失效問題的解決方案

問題來源: 何為跨域跨域session/cookie? 也就是第三方session/cookie。第一方session/cookie指的是訪客當前訪問的網站給訪客的瀏覽器設定的seesion/cookie, 會被儲存在訪客的計算機上。第三方session/cookie

ie瀏覽器get方式獲取數據無效問題

最好的 style mil ajax請求 ajax random font 時也 internet 在ie瀏覽器用get方式獲取數據時因為發送得到參數地址都是一樣的,所以瀏覽器會優先從緩存獲取數據,而不去服務器請求數據,post由於參數不同所以不會影響。 解決方法: 1.

struts2如何獲取session

1) ActionContext類 ActionContext.getContext().getSession(); 該方法返回的是一個Map<String,Object>,Strust2

IE無法儲存Cookie和Session問題

最近在做新的Web專案時,因為一個驗證碼無法儲存在Cookie中,或者更確切地說是IE下無法儲存Cookie的問題糾結了整整一天時間,考慮了多種原因,單步除錯了不下三十次,也沒有結果。甚至在無奈之下改為Session儲存,同樣不能儲存!最好想到了會不會是因為域名問題呢?因

通過一個小技巧可以讓flash和iframe的在ie遮擋問題解決

最近在研究一個openlaszlo platform平臺的一個小bug.發現了一個在ie下很有意思的bug.一般iframe和flash混用經常都會碰到。ie上解決方式大都選擇wmode設定為transparent.但是swf在transparent的情況下,感應不到mou

IE如何設定iframe背景透明

首先:在iframe標籤中加入 allowtransparency="true"屬性然後:在呼叫的頁面的<body>標籤里加入style="background:transparent;" 示例:<iframe allowtransparency="ture

IEiframe不能正常載入,顯示空白

下午幫忙看了一個web問題,index.html中嵌入<iframe>來載入同文件目錄下的一個頁面,在多個瀏覽器下測試,發現IE瀏覽器中會出現問題,<iframe>不能正常載入,顯示空白頁,右鍵屬性為"_blank" 。一開始,想到的是src屬性的問題

artdialog在ie點選關閉會嵌入到頁面中的解決辦法

原頁面: 點選artdialog後: 點選儲存或者取消後: 這問題夠奇葩把,不知道你有沒有遇到呢、。 解決辦法如下(在原始碼上加上紅色字型程式碼即可): $('#picadd').click(function(){var bdialog = art

SQLServer中使用擴展事件獲取Session級別的等待信息以及SQLServer 2016中Session級別等待信息的增強

cut 數據庫服務 事件 網絡 再次 drop nal exist 歷史 本文出處:http://www.cnblogs.com/wy123/p/6835939.html 什麽是等待 簡單說明一下什麽是等待:當應用程序對SQL Server發起一個Sess

路由機構 -- 拉框獲取當前所屬部門

當前 esp success post war pro -- dia init //下拉框獲取當前所屬部門 function initRespOrg(){ $.ajax({ type: "POST", url: "/tms/

CentOS7 Nginx + Tomcat 實現 Session 共享

++ port orange 安裝目錄 nag 教訓 font ext 參考   在之情的文章中搭建的 centos7 + tomcat + nginx 的環境的基礎上, 使用 redis 實現 tomcat 的 session 共享的問題。 一 : 安裝 Redis   

win命令行獲取管理員權限

resource all user install 出現 mce window 令行 runas 在win下運行npm install安裝依賴出現錯誤: Error: EBUSY, resource busy or locked搜索錯誤信息後發現是由於沒有管理員權限,在ba

ie常見的css兼容問題

-m blank href 消失 特性 元素 out 識別 play 1.border-radius 邊框圓角 IE8及以下瀏覽器不支持border-radius webkit引擎支持-webkit-borderradius 私有屬性 mozilla Gecko引擎支持

Linux,PHP的SESSION不起作用的問題

lin mod data article trac ack tracking track rac 改動SESSION目錄的權限就能夠了。 先找到SESSION目錄, 然後 chmod -R 777 /var/lib/php/session 假設沒有此目錄

拉框獲取關聯表的信息

tro () base 返回 自己的 option func tip ron 用jq和ajax實現 1.在jsp頁面上 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><

點擊select拉框獲取option的屬性值

添加 對象 logs 調用 wid cti 渲染 pre con select下拉框作為前端開發者應該是經常使用的,最近在項目中遇到這樣的情況,點擊下拉框選項,需要獲取所點擊的option的屬性值,當時想很簡單啊,給option加一個點擊事件不就行了,然後就加了一下,結果一

IE推斷IE版本號的語句

sof -m ont 解釋 style ros art hat padding 樣例: 1. <!--[if !IE]> 除IE外都可識別 <![endif]--> 2. <!--[if IE]> 全部的IE可識別

Spring中獲取Session的方法匯總

ttr public urn 過去 ets red ole list details Spring: web.xml <listener>   <listener-class>org.springframework.web.context.