由于 Javascript 同源策略的存在使得一個(gè)源中加載來自其它源中資源的行為受到了限制。即會(huì)出現(xiàn)跨域請(qǐng)求禁止。
通俗一點(diǎn)說就是如果存在協(xié)議、域名、端口或者子域名不同服務(wù)端,或一者為IP地址,一者為域名地址(在跨域問題上,域僅僅是通過“ url的首部 ”來識(shí)別而不會(huì)去嘗試判斷相同的IP地址對(duì)應(yīng)著兩個(gè)域或者兩個(gè)域是否同屬同一個(gè)IP),之中任意服務(wù)端旗下的客戶端發(fā)起請(qǐng)求其它服務(wù)端資源的訪問行動(dòng)都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請(qǐng)求資源。
但很多時(shí)候我們卻又不得不去跨域請(qǐng)求資源,這個(gè)時(shí)候就需要我們想方法去繞過瀏覽器同源策略的限制了。
常見的跨域請(qǐng)求解決方法:
1.Jsonp 利用script標(biāo)簽發(fā)起get請(qǐng)求不會(huì)出現(xiàn)跨域禁止的特點(diǎn)實(shí)現(xiàn)
2.window.name+iframe 借助中介屬性window.name實(shí)現(xiàn)
3.html5的 postMessage 主要側(cè)重于前端通訊,不同域下頁面之間的數(shù)據(jù)傳遞
4.Cors需要服務(wù)器設(shè)置header:Access-Control-Allow-Origin
5.Nginx反向代理 可以不需要目標(biāo)服務(wù)器配合,不過需要Nginx中轉(zhuǎn)服務(wù)器,用于轉(zhuǎn)發(fā)請(qǐng)求(服務(wù)端之間的資源請(qǐng)求不會(huì)有跨域限制)
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26