成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

面試--跨域

davidac / 1799人閱讀

摘要:跨域的解決方法使用使用跨域請求資源共享是跨域資源請求機(jī)制,它要求當(dāng)前服務(wù)器存放資源在響應(yīng)的報頭中添加標(biāo)簽從而指定當(dāng)前服務(wù)器可以被跨域訪問服務(wù)器客戶端在前端頁面會顯示但是默認(rèn)的只支持和請求。

同源策略

之所以出現(xiàn)跨域就是因為有同源的限制
同協(xié)議 同域名 同端口 在能獲取資源在同源策略下 域名A下可以訪問域名B下的腳本 css 和圖片 但是A不能向B發(fā)起Ajax請求。

跨域的解決方法 使用CORS

使用CORS(跨域請求資源共享Cross-Origin Resource Sharing)是跨域資源請求機(jī)制,它要求當(dāng)前服務(wù)器(存放資源)在響應(yīng)的報頭中添加 Access-Control-Allow-Origin標(biāo)簽 從而指定當(dāng)前服務(wù)器可以被跨域訪問
res.setHeader("Access-Control-Allow-Origin","*");
服務(wù)器

var http=require("http");
http.createServer(function (req,res) {
    res.setHeader("Access-Control-Allow-Origin","*");
    res.end("OK");
}).listen(1234);

客戶端

  $.ajax({url:"http://127.0.0.1:1234/",success:function (data) {
         $("div").text(data)
     }})

在前端頁面會顯示 OK
但是 默認(rèn)的cors只支持get和post請求。
關(guān)于 cors的詳細(xì)理解可以查看 我的而另一篇文章 https://segmentfault.com/a/11...

Html5的解決方案-Cross-document messaging

使用postMessage(發(fā)送數(shù)據(jù))方法和onMessage(接收數(shù)據(jù)) 事件來傳送不同域之間的通信

子頁面

 var ifr=window.parent;
    var targeOrigin="http://localhost:63342/reactWork";
    ifr.postMessage("asa1111",targeOrigin);

父頁面


實現(xiàn)了子頁面向父頁面發(fā)送消息ifr.postMessage()
在父頁面接收消息 window.addEventListener("message",function(){})

Html5的解決方案-WebSocket

WebSocket protocol 是h5的新協(xié)議 實現(xiàn)了瀏覽器與服務(wù)器的雙工通信,同時允許跨域通信
下面是WebSocket同新的例子




    
    
   
    




sjaisja

客戶端的代碼

var WebSocketServer = require("ws").Server,
    wss = new WebSocketServer({ port: 8181 });
      wss.on("connection", function (ws) {
          console.log("開始連接")
          ws.on("message", function (message) {
              console.log(111)
              ws.send(message)
          })
      });

nodejs服務(wù)器端的代碼 實現(xiàn)了瀏覽器和服務(wù)器的 等位通信

JSONP

主要是利用 Script標(biāo)簽不受同源限制的特性,向跨域服務(wù)器請求發(fā)揮一段JSON數(shù)據(jù)

常規(guī)前后端會約定好某個JSON 請求的callBack包裹起來。進(jìn)而方便服務(wù)器區(qū)分收到的請求,也方便客戶端區(qū)分收到的響應(yīng)。

客戶端


服務(wù)器

var http=require("http");
var urllib=require("url");
var data={"name":"111","addr":"222"};
http.createServer(function (req,res) {
    res.writeHead(200,{"Content-type":"text/plain"});
    var params=urllib.parse(req.url,true);
    if(params.query&¶ms.query.callback){
        console.log(params.query,params.query.callback)
        var str=params.query.callback+"("+JSON.stringify(data)+")";
        console.log(str)
        res.end(str);
    }else{
        res.end(JSON.stringify(data));
    }
}).listen(1234)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/85039.html

相關(guān)文章

  • 2018年騰訊前端一面總結(jié)(面向2019屆學(xué)生)

    摘要:前言騰訊一面,相比阿里一面來說,騰訊一面先給打電話預(yù)定時間,這也給了我們這些面試者去準(zhǔn)備的時間。其實閉包也就是指有權(quán)訪問另一個函數(shù)作用域的函數(shù)而已。常用的創(chuàng)建閉包的方法就是在函數(shù)內(nèi)部創(chuàng)建另一個函數(shù)。 前言 騰訊一面,相比阿里一面來說,騰訊一面先給打電話預(yù)定時間,這也給了我們這些面試者去準(zhǔn)備的時間。但是也正是因為這種確定性,也有在等待電話的時候的心情的忐忑。 背景 我是一名大三學(xué)生,大一...

    Kosmos 評論0 收藏0
  • 一篇文章搞明白CORS跨域

    摘要:跨域?qū)嵲谑敲嬖嚬僖粋€人的利器。首先,什么是是一個標(biāo)準(zhǔn),全稱是跨域資源共享。它的值是一個布爾值,表示是否允許發(fā)送。設(shè)為,即表示服務(wù)器明確許可,可以包含在請求中,一起發(fā)給服務(wù)器。 面試問到數(shù)據(jù)交互的時候,經(jīng)常會問跨域如何處理。大部分人都會回答JSONP,然后面試官緊接著就會問:JSONP缺點是什么?。窟@個時候坑就來了,如果面試者說它支持GET方式,然后面試官就會追問,那如果POST方式發(fā)送...

    tanglijun 評論0 收藏0
  • 前端面試題-瀏覽器/服務(wù)端/網(wǎng)絡(luò)

    摘要:同源策略是什么跨域通信同源兩個文檔同源需滿足協(xié)議相同域名相同端口相同跨域通信進(jìn)行操作通信時如果目標(biāo)與當(dāng)前窗口不滿足同源條件,瀏覽器為了安全會阻止跨域操作。 同源策略是什么? javascript跨域通信 同源:兩個文檔同源需滿足 協(xié)議相同 域名相同 端口相同 跨域通信:js進(jìn)行DOM操作、通信時如果目標(biāo)與當(dāng)前窗口不滿足同源條件,瀏覽器為了安全會阻止跨域操作??缬蛲ㄐ磐ǔS幸韵路椒?...

    jsdt 評論0 收藏0
  • 前端秋招面試總結(jié)

    摘要:前言秋招宣告結(jié)束,面試了接近家公司,有幸拿到,感謝這段時間一起找工作面試的朋友和陪伴我的人。一定要提前準(zhǔn)備好,不然面試官叫你說遇到的難點,或者直接問問題時可能會懵逼。 前言 秋招宣告結(jié)束,面試了接近20家公司,有幸拿到offer,感謝這段時間一起找工作面試的朋友和陪伴我的人。這是一段難忘的經(jīng)歷,相信不亞于當(dāng)年的高考吧,也許現(xiàn)在想起來高考不算什么,也許只有經(jīng)歷過秋招的人才懂得找工作的艱辛...

    Gu_Yan 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<