中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

JavaScript跨域總結與解決辦法

  本文來自網絡(http://f2e.me/200904/cross-scripting/,該網址已不能訪問),僅作個人讀書筆記之用,并稍作修改和補充。

  什么是跨域

  JavaScript出于安全方面的考慮,不允許跨域調用其他頁面的對象。但在安全限制的同時也給注入iframe或是ajax應用上帶來了不少麻煩。這里把涉及到跨域的一些問題簡單地整理一下:

  首先什么是跨域,簡單地理解就是因為JavaScript同源策略的限制,a.com 域名下的js無法操作b.com或是c.a.com域名下的對象。更詳細的說明可以看下表:

  特別注意兩點:
第一,如果是協議和端口造成的跨域問題前臺是無能為力的,
第二:在跨域問題上,域僅僅是通過URL的首部來識別而不會去嘗試判斷相同的ip地址對應著兩個域或兩個域是否在同一個ip上。
URL的首部指window.location.protocol +window.location.host,也可以理解為Domains, protocols and ports must match。

  接下來簡單地總結一下在前臺一般處理跨域的辦法,后臺proxy這種方案牽涉到后臺配置,這里就不闡述了,有興趣的可以看看yahoo的這篇文章:《JavaScript: Use a Web Proxy for Cross-Domain XMLHttpRequest Calls》

  1、document.domain+iframe的設置

  對于主域相同而子域不同的例子,可以通過設置document.domain的辦法來解決。具體的做法是可以在http://www.a.com/a.html和http://script.a.com/b.html兩個文件中分別加上document.domain = a.com;然后通過a.html文件中創建一個iframe,去控制iframe的contentDocument,這樣兩個js文件之間就可以交互了。當然這種辦法只能解決主域相同而二級域名不同的情況,如果你異想天開的把script.a.com的domian設為alibaba.com那顯然是會報錯地!代碼如下:

  www.a.com上的a.html

document.domain = 'a.com';
var ifr = document.createElement('iframe');
ifr.src
= 'http://script.a.com/b.html';
ifr.style.display
= 'none';
document.body.appendChild(ifr);
ifr.onload
= function(){
var doc = ifr.contentDocument || ifr.contentWindow.document;
// 在這里操縱b.html
alert(doc.getElementsByTagName("h1")[0].childNodes[0].nodeValue);
};

script.a.com上的b.html

document.domain
= 'a.com';

it知識庫JavaScript跨域總結與解決辦法,轉載需保留來源!

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

主站蜘蛛池模板: 日韩电影中文字幕 | 日韩av中文 | 欧美在线视频观看 | 福利影院在线看 | 久久久www成人免费无遮挡大片 | 午夜午夜精品一区二区三区文 | 一级片在线视频 | 黄色小视频入口 | 粉嫩一区二区三区四区公司1 | 久久免费香蕉视频 | 99精品热视频 | 女女百合av大片一区二区三区九县 | 香蕉久久a毛片 | 国产亚洲精品久久午夜玫瑰园 | 国产午夜精品一区二区三区四区 | 日韩精品一区二区三区在线播放 | 国产视频福利在线观看 | 欧美一级在线观看 | 亚洲日产精品 | 精品久久久久久久久久久久 | 婷婷综合网 | 日韩亚洲视频 | 亚洲精品日韩在线 | 欧美三区在线观看 | 免费观看色 | 国产精品久久久久久52avav | m豆传媒在线链接观看 | 亚洲国产网站 | 色综合久久久久 | 中文字幕爱爱视频 | 久久网站黄 | 香蕉国产在线视频 | 天天搞天天操 | h视频在线看 | 日韩视频专区 | 国产一区久久精品 | 久久久久久高清 | 日韩视频一区二区 | 一区二区福利视频 | 国产免费福利小视频 | 欧美jizzhd精品欧美巨大免费 |