一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

javascript使用window.name解決跨域問(wèn)題第1/2頁(yè)

window.name 傳輸技術(shù),原本是 Thomas Frank 用于解決 cookie 的一些劣勢(shì)(每個(gè)域名 4 x 20 Kb 的限制、數(shù)據(jù)只能是字符串、設(shè)置和獲取 cookie 語(yǔ)法的復(fù)雜等等)而發(fā)明的(詳細(xì)見(jiàn)原文:《Session variables without cookies》),后來(lái) Kris Zyp 在此方法的基礎(chǔ)上強(qiáng)化了 window.name 傳輸 ,并引入到了 Dojo (dojox.io.windowName),用來(lái)解決跨域數(shù)據(jù)傳輸問(wèn)題。
window.name 傳輸技術(shù)的基本原理和步驟為:
name 在瀏覽器環(huán)境中是一個(gè)全局/window對(duì)象的屬性,且當(dāng)在 frame 中加載新頁(yè)面時(shí),name 的屬性值依舊保持不變。通過(guò)在 iframe 中加載一個(gè)資源,該目標(biāo)頁(yè)面將設(shè)置 frame 的 name 屬性。此 name 屬性值可被獲取到,以訪問(wèn) Web 服務(wù)發(fā)送的信息。但 name 屬性僅對(duì)相同域名的 frame 可訪問(wèn)。這意味著為了訪問(wèn) name 屬性,當(dāng)遠(yuǎn)程 Web 服務(wù)頁(yè)面被加載后,必須導(dǎo)航 frame 回到原始域。同源策略依舊防止其他 frame 訪問(wèn) name 屬性。一旦 name 屬性獲得,銷(xiāo)毀 frame 。

在最頂層,name 屬性是不安全的,對(duì)于所有后續(xù)頁(yè)面,設(shè)置在 name 屬性中的任何信息都是可獲得的。然而 windowName 模塊總是在一個(gè) iframe 中加載資源,并且一旦獲取到數(shù)據(jù),或者當(dāng)你在最頂層瀏覽了一個(gè)新頁(yè)面,這個(gè) iframe 將被銷(xiāo)毀,所以其他頁(yè)面永遠(yuǎn)訪問(wèn)不到 window.name 屬性。

基本實(shí)現(xiàn)代碼,基于 YUI,源自 克軍寫(xiě)的樣例:

復(fù)制代碼 代碼如下:
(function(){
var YUD = YAHOO.util.Dom, YUE = YAHOO.util.Event;

dataRequest = {
_doc: document,
cfg: {
proxyUrl: 'proxy.html'
}
};

dataRequest.send = function(sUrl, fnCallBack){
if(!sUrl || typeof sUrl !== 'string'){
return;
}

sUrl += (sUrl.indexOf('?') > 0 ? '&' : '?') + 'windowname=true';

var frame = this._doc.createElement('iframe'), state = 0, self = this;
this._doc.body.appendChild(frame);
frame.style.display = 'none';

var clear = function(){
try{
frame.contentWindow.document.write('');
frame.contentWindow.close();
self._doc.body.removeChild(frame);
}catch(e){}
};

var getData = function(){
try{
var da = frame.contentWindow.name;
}catch(e){}
clear();
if(fnCallBack && typeof fnCallBack === 'function'){
fnCallBack(da);
}
};

YUE.on(frame, 'load', function(){
if(state === 1){
getData();
} else if(state === 0){
state = 1;
frame.contentWindow.location = self.cfg.proxyUrl;
}
});

frame.src = sUrl;
};
})();

JavaScript技術(shù)javascript使用window.name解決跨域問(wèn)題第1/2頁(yè),轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 精品91在线| 人人添人人澡人人澡人人人人 | 国产人成亚洲第一网站在线播放 | 99久久精品国产麻豆 | 日韩综合nv一区二区在线观看 | 天天艹天天 | 八月丁香婷婷 | 加勒比免费视频 | 亚洲一区二区三区免费在线观看 | 伊人久久综合谁合综合久久 | 好叼操这里只有精品 | 国产91边对白在线播放 | 综合在线视频精品专区 | 三级色网站 | 性做久久久久久网站 | 日韩精品中文字幕视频一区 | 99久久久精品免费观看国产 | 美女特级毛片 | 欧美日日 | 成人免费视频网站 | 久久888| 99国产精品国产精品 | 日韩中文字幕精品免费一区 | 亚洲国产精品婷婷久久久久 | 色婷婷激婷婷深爱五月小说 | 91国语对白 | 99在线国产视频 | 风间由美一区二区播放合集 | 91精品啪在线观看国产色 | 一区二区三区中文 | 四色网站| 精品一区二区三区在线观看l | 中文字幕一区二区三区永久 | 国内国外精品影片无人区 | 九九99久久精品午夜剧场免费 | 亚洲高清国产拍精品影院 | 五月婷婷影视 | 五月婷婷六月丁香在线 | 亚洲综合插插 | 色哟哟高清视频在线观看 | 最新国产在线观看福利 |