JSONP_跨域

題目1: 什么是同源策略


題目2: 什么是跨域?跨域有幾種實(shí)現(xiàn)形式

  • 什么是跨域栏渺?
    允許不同域的接口進(jìn)行交互

  • 跨域有幾種實(shí)現(xiàn)形式

  1. JSONP(實(shí)際就是以加載js的方式,執(zhí)行拿到不同域名中的數(shù)據(jù))
  2. CORS(后端設(shè)置后端會(huì)添加一個(gè)響應(yīng)頭:Access-Control-Allow-Origin.設(shè)置允許訪問(wèn)的域名)
  3. 降域(幾個(gè)域名相同的一部分)
  4. postMessage(用于iframe,在parent的html中獲取iframe,發(fā)消息,在iframe的html中監(jiān)聽)

題目3: JSONP 的原理是什么

后端將數(shù)據(jù)轉(zhuǎn)換成js代碼的格式,前端通過(guò)script標(biāo)簽接收來(lái)自后端的js代碼再與前端已有的js代碼一起運(yùn)行實(shí)現(xiàn)跨域獲取數(shù)據(jù)


題目4: CORS是什么

前端用 XMLHttpRequest 跨域訪問(wèn)時(shí)呛梆,瀏覽器會(huì)在請(qǐng)求頭中添加:origin.后端會(huì)添加一個(gè)響應(yīng)頭:Access-Control-Allow-Origin瀏覽器判斷該相應(yīng)頭中Access-Control-Allow-Origin的值是否包含 Origin 的值,如果有則瀏覽器會(huì)處理響應(yīng)磕诊,我們就可以拿到響應(yīng)數(shù)據(jù)削彬,如果不包含瀏覽器直接駁回,這時(shí)我們無(wú)法拿到響應(yīng)數(shù)據(jù)秀仲。


題目5: 根據(jù)視頻里的講解演示三種以上跨域的解決方式

JSONP跨域
  • a.html代碼
<script>
  var scri = document.createElement('script')
  scri.src = 'http://gaoyang2:8080/alert?callBack=myalert'
  document.head.appendChild(scri)
  document.head.removeChild(scri)
  function myalert(str){
      alert(str)
  }
  </script>
  • router.js代碼
app.get('/alert', function(req, res) {

    var call = req.query.callBack
    var data = 'JSONP-跨域';
    res.send(call+'('+JSON.stringify(data)+')');
});
CORS跨域
  • a.html代碼
<script>
  var xhr = new XMLHttpRequest()
  xhr.onreadystatechange = function(){
     if (xhr.readyState === 4) {
       if(xhr.status == 200 || xhr.status == 304){
         alert(JSON.parse(xhr.responseText))
       }
     }
  }
  xhr.open('get','http://gaoyang2:8080/alert',true)
  xhr.send();
  </script>
  • router.js代碼
app.get('/alert', function(req, res) {

    var data = 'CORS-跨域';
    res.header("Access-Control-Allow-Origin", "http://gaoyang1:8080");
    res.send(JSON.stringify(data));
});
降域(1.首先必須是有相同的一部分,2.相同的一部分必須域名的最后一部分3.降域的域名不能只有一個(gè)頂級(jí)域名)
  • a.html代碼
<body>
  <input type="text" placeholder="a.html">
  <iframe src="http://2.gaoyang.com:8080/b.html" frameborder="0"></iframe>
  <script>
    document.querySelector('input').addEventListener('input', function(){
  
    window.frames[0].document.querySelector('input').value = this.value;
  })
  document.domain = 'gaoyang.com'
  </script>
</body>
  • b.html代碼
<body>
   <input type="text" placeholder="b.html">
   <script>
    document.querySelector('input').addEventListener('input', function(){
  
    window.parent.document.querySelector('input').value = this.value;
  })
  document.domain = 'gaoyang.com'
  </script>
</body>
postmessage
  • a.html代碼
<body>
  <input type="text" placeholder="a.html">
  <iframe src="http://2.gaoyang.com:8080/b.html" frameborder="0"></iframe>
  <script>
    document.querySelector('input').addEventListener('input', function(){
    window.frames[0].postMessage(this.value,'*')
  })
  window.addEventListener('message',function(e) {
        document.querySelector('input').value = e.data
   
  });
  </script> 
</body>
  • b.html代碼
<body>
   <input type="text" placeholder="b.html">
   <script>
    document.querySelector('input').addEventListener('input', function(){
    window.parent.postMessage(this.value,'*')
  })
  window.addEventListener('message',function(e) {
        document.querySelector('input').value = e.data
   
  });
  </script>
  
</body>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末融痛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子神僵,更是在濱河造成了極大的恐慌雁刷,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件保礼,死亡現(xiàn)場(chǎng)離奇詭異沛励,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)炮障,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門目派,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胁赢,你說(shuō)我怎么就攤上這事企蹭。” “怎么了智末?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵谅摄,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我系馆,道長(zhǎng)送漠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任由蘑,我火速辦了婚禮闽寡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尼酿。我一直安慰自己爷狈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布谓媒。 她就那樣靜靜地躺著淆院,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上土辩,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天支救,我揣著相機(jī)與錄音,去河邊找鬼拷淘。 笑死各墨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的启涯。 我是一名探鬼主播贬堵,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼结洼!你這毒婦竟也來(lái)了黎做?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤松忍,失蹤者是張志新(化名)和其女友劉穎蒸殿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸣峭,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宏所,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摊溶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爬骤。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖莫换,靈堂內(nèi)的尸體忽然破棺而出霞玄,到底是詐尸還是另有隱情,我是刑警寧澤浓镜,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布溃列,位于F島的核電站劲厌,受9級(jí)特大地震影響膛薛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜补鼻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一哄啄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧风范,春花似錦咨跌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至寇漫,卻和暖如春刊殉,著一層夾襖步出監(jiān)牢的瞬間殉摔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工记焊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留逸月,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓遍膜,卻偏偏與公主長(zhǎng)得像碗硬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓢颅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 題目1: 什么是同源策略 瀏覽器出于安全考慮恩尾,只允許與本域下的接口交互。不同源的客戶端腳本在沒(méi)有明確授權(quán)的情況下挽懦,...
    saintkl閱讀 236評(píng)論 0 0
  • 1需要注意的是: 對(duì)于當(dāng)前頁(yè)面來(lái)說(shuō)頁(yè)面存放的 JS 文件的域不重要特笋,重要的是加載該 JS 頁(yè)面所在什么域 題目2:...
    李永州的FE閱讀 309評(píng)論 0 0
  • 1.什么是同源策略 同源策略(Same origin Policy):瀏覽器出于安全方面的考慮,只允許與本域下的接...
    hellowade閱讀 188評(píng)論 0 0
  • 同源策略(Same origin Policy) 解析瀏覽器出于安全考慮巾兆,只允許與同域下的接口進(jìn)行資源交互猎物。不同域...
    jrg_memo閱讀 260評(píng)論 0 0
  • 1、什么是同源策略 瀏覽器出于安全考慮角塑,只能同本域進(jìn)行接口交互蔫磨。不同源的客戶端腳本在未經(jīng)許可的情況下,不允許讀寫對(duì)...
    撫年華輕過(guò)閱讀 313評(píng)論 0 0