首先說明原理:
系統(tǒng)是認(rèn)一個一個程序范圍的,一般來說,一個IE默認(rèn)為一個程序范圍.
框架因?yàn)橛辛丝缬虻膬?nèi)容,所以它首先默認(rèn)的是框架程序本身的程序范圍,這樣使得框架內(nèi)的程序范圍得不到確認(rèn).
為了讓這個IE默認(rèn)為框架內(nèi)的程序范圍,所以我使用了多次跳轉(zhuǎn).
首先,跳出本框架,進(jìn)入一個無框架的需要session值的網(wǎng)站頁面(就叫它B服務(wù)器的頁面),并在這個頁面中生成一個session以便系統(tǒng)自動生成一個sessionID,然后又跳回到有框架的頁面.因?yàn)橄到y(tǒng)已經(jīng)為這個IE生成了一個sessionID,所以只要不關(guān)掉這個IE,系統(tǒng)一直以為這個IE是本程序范圍的.這樣,再次生成的session值就得以在這個ID中生存下來.
也就達(dá)到了騙過系統(tǒng)的目的.
再補(bǔ)充一點(diǎn),二次跳轉(zhuǎn)使用了不同的方式,原因是我需要把框架外的信息丟棄,而要保存框架內(nèi)的信息.
而不同的跳轉(zhuǎn)方式會丟棄或保存跳轉(zhuǎn)前的信息的。
程序?qū)崿F(xiàn)方式:
文件1:
框架文件:index.htm(運(yùn)行在服務(wù)器A上)
奇豪門業(yè)
文件2:index.asp (運(yùn)行在服務(wù)器B上,作用跳轉(zhuǎn)和生成sessionID)
<%
if session("xm2")="" then
session( "xm2")="eee"
'上面這一句的目的只是為了使用session,讓系統(tǒng)為這個IE生成一個sessionID,并且判斷一下是不是已經(jīng)跳轉(zhuǎn)過,免得引起死循環(huán)。
%>
<%
,上面這一句是回到框架,注意:只能用上面這個跳轉(zhuǎn)的方法,別用下面的跳轉(zhuǎn)方法。
else
Response.Redirect "index2.asp"
'上面一句才是真正地跳轉(zhuǎn)運(yùn)行服務(wù)器B上的程序!注意:也只能用這方法跳!
end if%>
經(jīng)過以上的跳轉(zhuǎn),本IE已經(jīng)有了服務(wù)器B上的sessionID,也就是說,框架雖然是在服務(wù)器A上的主框架運(yùn)行,但它可以確保服務(wù)器B上的session不丟失,達(dá)到跨域運(yùn)行的目的。
系統(tǒng)是認(rèn)一個一個程序范圍的,一般來說,一個IE默認(rèn)為一個程序范圍.
框架因?yàn)橛辛丝缬虻膬?nèi)容,所以它首先默認(rèn)的是框架程序本身的程序范圍,這樣使得框架內(nèi)的程序范圍得不到確認(rèn).
為了讓這個IE默認(rèn)為框架內(nèi)的程序范圍,所以我使用了多次跳轉(zhuǎn).
首先,跳出本框架,進(jìn)入一個無框架的需要session值的網(wǎng)站頁面(就叫它B服務(wù)器的頁面),并在這個頁面中生成一個session以便系統(tǒng)自動生成一個sessionID,然后又跳回到有框架的頁面.因?yàn)橄到y(tǒng)已經(jīng)為這個IE生成了一個sessionID,所以只要不關(guān)掉這個IE,系統(tǒng)一直以為這個IE是本程序范圍的.這樣,再次生成的session值就得以在這個ID中生存下來.
也就達(dá)到了騙過系統(tǒng)的目的.
再補(bǔ)充一點(diǎn),二次跳轉(zhuǎn)使用了不同的方式,原因是我需要把框架外的信息丟棄,而要保存框架內(nèi)的信息.
而不同的跳轉(zhuǎn)方式會丟棄或保存跳轉(zhuǎn)前的信息的。
程序?qū)崿F(xiàn)方式:
文件1:
框架文件:index.htm(運(yùn)行在服務(wù)器A上)
文件2:index.asp (運(yùn)行在服務(wù)器B上,作用跳轉(zhuǎn)和生成sessionID)
<%
if session("xm2")="" then
session( "xm2")="eee"
'上面這一句的目的只是為了使用session,讓系統(tǒng)為這個IE生成一個sessionID,并且判斷一下是不是已經(jīng)跳轉(zhuǎn)過,免得引起死循環(huán)。
%>
<%
,上面這一句是回到框架,注意:只能用上面這個跳轉(zhuǎn)的方法,別用下面的跳轉(zhuǎn)方法。
else
Response.Redirect "index2.asp"
'上面一句才是真正地跳轉(zhuǎn)運(yùn)行服務(wù)器B上的程序!注意:也只能用這方法跳!
end if%>
經(jīng)過以上的跳轉(zhuǎn),本IE已經(jīng)有了服務(wù)器B上的sessionID,也就是說,框架雖然是在服務(wù)器A上的主框架運(yùn)行,但它可以確保服務(wù)器B上的session不丟失,達(dá)到跨域運(yùn)行的目的。

