摘要:想看重點(diǎn)的直接挪到文章底部,反向代理的配置跨域涉及到前后端開(kāi)發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問(wèn)題。瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種同源策略禁止對(duì)不同源頁(yè)面進(jìn)行操作。同源策略禁止使用對(duì)象向不同源的服務(wù)器地址發(fā)起請(qǐng)求。
想看重點(diǎn)的直接挪到文章底部,nginx反向代理的配置
跨域涉及到前后端開(kāi)發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問(wèn)題??缬颍傅氖菫g覽器不能執(zhí)行其他網(wǎng)站的腳本。
瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種 DOM同源策略:禁止對(duì)不同源頁(yè)面DOM進(jìn)行操作。這里主要場(chǎng)景是iframe跨域的情況,不同域名的iframe是限制互相訪問(wèn)的。 XmlHttpRequest同源策略:禁止使用XHR對(duì)象向不同源的服務(wù)器地址發(fā)起HTTP請(qǐng)求。 只要協(xié)議、域名、端口有任何一個(gè)不同,都被當(dāng)作是不同的域,之間的請(qǐng)求就是跨域操作。 所謂同源是指,域名,協(xié)議,端口均相同,不明白沒(méi)關(guān)系,舉個(gè)栗子: http://www.123.com/test.html 調(diào)用 http://www.123.com/test.php (非跨域) http://www.123.com/test.html 調(diào)用 http://www.456.com/test.php (主域名不 同:123/456,跨域) http://abc.123.com/test.html 調(diào)用 http://def.123.com/test.php (子域名不同:abc/def,跨域) http://www.123.com:8080/test.html 調(diào)用 http://www.123.com:8081/test.php (端口不同:8080/8081,跨域) http://www.123.com/test.html 調(diào)用 https://www.123.com/test.php (協(xié)議不同:http/https,跨域) 請(qǐng)注意:localhost和127.0.0.1雖然都指向本機(jī),但也屬于跨域。 瀏覽器執(zhí)行javascript腳本時(shí),會(huì)檢查這個(gè)腳本屬于哪個(gè)頁(yè)面,如果不是同源頁(yè)面,就不會(huì)被執(zhí)行。解決跨域的辦法
1.jsonp
使用方式就不贅述了,基本原理就是通過(guò)動(dòng)態(tài)創(chuàng)建script標(biāo)簽,然后利用src屬性進(jìn)行跨域,但是要注意JSONP只支持GET請(qǐng)求,不支持POST請(qǐng)求。
2.CORS(跨域資源共享)
利用nginx或者php、java等后端語(yǔ)言設(shè)置允許跨域請(qǐng)求 header("Access-Control-Allow-Origin:*");//允許所有來(lái)源訪問(wèn) header("Access-Control-Allow-Method:POST,GET");//允許訪問(wèn)的方式 今天不作重點(diǎn)介紹
3.服務(wù)器代理
瀏覽器有跨域限制,但是服務(wù)器不存在跨域問(wèn)題,所以可以由服務(wù)器請(qǐng)求所要域的資源再返回給客戶端。
4.其他
利用Nginx反向代理解決跨域問(wèn)題今天介紹的重點(diǎn),直接上代碼
這是本地的開(kāi)發(fā)環(huán)境nginx的配置 http { client_max_body_size 1024m; include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8081; #自身監(jiān)聽(tīng)8081端口 server_name first; location /apis/xos { #當(dāng)匹配到/apis/xos 地址是時(shí)訪問(wèn) http://172.99.99.99:31004/ proxy_pass http://172.99.99.99:31004/; } location /apis/rds { #當(dāng)匹配到/apis/rds 地址是時(shí)訪問(wèn) http://172.88.88.88:20152 proxy_pass http://172.88.88.88:20152/; } location /apis { #當(dāng)匹配到/apis 地址是時(shí)訪問(wèn) http://172.88.88.88:31002/,一個(gè)api地址 proxy_pass http://172.88.88.88:31002/; } location / { proxy_pass http://127.0.0.1:8080; #匹配不到其他地址默認(rèn)匹配的地址是訪問(wèn) 8080端口,本地node start啟動(dòng)的服務(wù) } } }
服務(wù)端的配置大體一樣
server { listen 80; server_name localhost; location / { root html; #HTML5 History 模式 nginx的配置 try_files $uri $uri/ /index.html; } location /apis/xos { proxy_pass http://172.88.88.88:31004/; } location /apis/rds { proxy_pass http://172.99.99.99:20152/; } location /apis/ { proxy_pass http://172.77.77.77:31002/; } location /index.html { #不允許緩存 add_header Cache-Control " no-store"; } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/39730.html
摘要:想看重點(diǎn)的直接挪到文章底部,反向代理的配置跨域涉及到前后端開(kāi)發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問(wèn)題。瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種同源策略禁止對(duì)不同源頁(yè)面進(jìn)行操作。同源策略禁止使用對(duì)象向不同源的服務(wù)器地址發(fā)起請(qǐng)求。 想看重點(diǎn)的直接挪到文章底部,nginx反向代理的配置 跨域 涉及到前后端開(kāi)發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問(wèn)題??缬?,指的是瀏覽器不能執(zhí)行其他...
摘要:例如和,這兩個(gè)域名的二級(jí)域名就是相同的代碼實(shí)現(xiàn)基于添加通過(guò)二級(jí)域名共享添加通過(guò)二級(jí)域名共享關(guān)閉瀏覽器時(shí)刪除代表關(guān)閉瀏覽器刪除負(fù)數(shù)則關(guān)閉瀏覽器失效沒(méi)有刪除參數(shù)介紹需要設(shè)置的二級(jí)域名至少是二級(jí)域名,可以是三級(jí)域名四級(jí)域名設(shè)置可以訪問(wèn)的路徑。 背景 最近在做sso單點(diǎn)登錄,sso登錄成功后后端需要把token和用戶信息以cookie的方式傳送給前端,由于項(xiàng)目是前后端分離的,這就涉及到了前后端...
摘要:更新嘗試了一下實(shí)現(xiàn)前后端分離,新的文章如下前后端分離之初試更新可另外用實(shí)現(xiàn)前后端分離,這篇文章可能局限性太大,只是個(gè)人的入門實(shí)踐剛剛學(xué)習(xí)前端快一年,后臺(tái)方面了解甚少,于是決定踩踩坑,學(xué)習(xí)一下。 2018.9.6更新:嘗試了一下REST framework實(shí)現(xiàn)前后端分離,新的文章如下Django前后端分離之REST framework初試 2018.8.27更新:可另外用 restful...
摘要:用于告知瀏覽器可以將預(yù)先檢查請(qǐng)求返回結(jié)果緩存的時(shí)間,在緩存有效期內(nèi),瀏覽器會(huì)使用緩存的預(yù)先檢查結(jié)果判斷是否發(fā)送跨域請(qǐng)求。 跨域,老生常談的問(wèn)題 簡(jiǎn)述 作為一只前端菜鳥,跨域方面只懂得JSONP和CORS,并未曾深入了解。但隨著春招越來(lái)越近,就算是菜鳥也要猛振翅膀。近幾日仔細(xì)研究了跨域問(wèn)題,寫下這篇文章,希望對(duì)開(kāi)發(fā)者們有所幫助。在讀本文前,希望您對(duì)以下知識(shí)略有了解。 瀏覽器同源策略 n...
閱讀 2438·2021-09-01 10:41
閱讀 1452·2019-08-30 14:12
閱讀 521·2019-08-29 12:32
閱讀 2869·2019-08-29 12:25
閱讀 2945·2019-08-28 18:30
閱讀 1716·2019-08-26 11:47
閱讀 994·2019-08-26 10:35
閱讀 2602·2019-08-23 18:06