国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

三分鐘解決前后端分離項(xiàng)目中的跨域問題

sushi / 1762人閱讀

摘要:想看重點(diǎn)的直接挪到文章底部,反向代理的配置跨域涉及到前后端開發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問題。瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種同源策略禁止對不同源頁面進(jìn)行操作。同源策略禁止使用對象向不同源的服務(wù)器地址發(fā)起請求。

想看重點(diǎn)的直接挪到文章底部,nginx反向代理的配置

跨域

涉及到前后端開發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問題。跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。

瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種
DOM同源策略:禁止對不同源頁面DOM進(jìn)行操作。這里主要場景是iframe跨域的情況,不同域名的iframe是限制互相訪問的。
XmlHttpRequest同源策略:禁止使用XHR對象向不同源的服務(wù)器地址發(fā)起HTTP請求。
只要協(xié)議、域名、端口有任何一個(gè)不同,都被當(dāng)作是不同的域,之間的請求就是跨域操作。

所謂同源是指,域名,協(xié)議,端口均相同,不明白沒關(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,跨域)
請注意:localhost和127.0.0.1雖然都指向本機(jī),但也屬于跨域。
瀏覽器執(zhí)行javascript腳本時(shí),會(huì)檢查這個(gè)腳本屬于哪個(gè)頁面,如果不是同源頁面,就不會(huì)被執(zhí)行。
解決跨域的辦法

1.jsonp

使用方式就不贅述了,基本原理就是通過動(dòng)態(tài)創(chuàng)建script標(biāo)簽,然后利用src屬性進(jìn)行跨域,但是要注意JSONP只支持GET請求,不支持POST請求。

2.CORS(跨域資源共享)

利用nginx或者php、java等后端語言設(shè)置允許跨域請求
header("Access-Control-Allow-Origin:*");//允許所有來源訪問
header("Access-Control-Allow-Method:POST,GET");//允許訪問的方式
今天不作重點(diǎn)介紹

3.服務(wù)器代理

瀏覽器有跨域限制,但是服務(wù)器不存在跨域問題,所以可以由服務(wù)器請求所要域的資源再返回給客戶端。

4.其他

利用Nginx反向代理解決跨域問題

今天介紹的重點(diǎn),直接上代碼

這是本地的開發(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)聽8081端口
        server_name first;
        location /apis/xos {
            #當(dāng)匹配到/apis/xos 地址是時(shí)訪問 http://172.99.99.99:31004/
            proxy_pass http://172.99.99.99:31004/;
        }
        location /apis/rds {
            #當(dāng)匹配到/apis/rds 地址是時(shí)訪問 http://172.88.88.88:20152
            proxy_pass  http://172.88.88.88:20152/;
        }        
        location /apis {
            #當(dāng)匹配到/apis 地址是時(shí)訪問  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)匹配的地址是訪問 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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

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

相關(guān)文章

  • 分鐘解決前后分離項(xiàng)目中的跨域問題

    摘要:想看重點(diǎn)的直接挪到文章底部,反向代理的配置跨域涉及到前后端開發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問題。瀏覽器的同源策略會(huì)導(dǎo)致跨域,這里同源策略又分為以下兩種同源策略禁止對不同源頁面進(jìn)行操作。同源策略禁止使用對象向不同源的服務(wù)器地址發(fā)起請求。 想看重點(diǎn)的直接挪到文章底部,nginx反向代理的配置 跨域 涉及到前后端開發(fā)的項(xiàng)目中,不可避免的涉及到了跨域的問題。跨域,指的是瀏覽器不能執(zhí)行其他...

    saucxs 評(píng)論0 收藏0
  • cookie跨域共享 cookie二級(jí)域名共享 前后分離項(xiàng)目共享cookie

    摘要:例如和,這兩個(gè)域名的二級(jí)域名就是相同的代碼實(shí)現(xiàn)基于添加通過二級(jí)域名共享添加通過二級(jí)域名共享關(guān)閉瀏覽器時(shí)刪除代表關(guān)閉瀏覽器刪除負(fù)數(shù)則關(guān)閉瀏覽器失效沒有刪除參數(shù)介紹需要設(shè)置的二級(jí)域名至少是二級(jí)域名,可以是三級(jí)域名四級(jí)域名設(shè)置可以訪問的路徑。 背景 最近在做sso單點(diǎn)登錄,sso登錄成功后后端需要把token和用戶信息以cookie的方式傳送給前端,由于項(xiàng)目是前后端分離的,這就涉及到了前后端...

    mj 評(píng)論0 收藏0
  • Django前后分離實(shí)踐

    摘要:更新嘗試了一下實(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...

    Mike617 評(píng)論0 收藏0
  • 徹底弄懂跨域問題

    摘要:用于告知瀏覽器可以將預(yù)先檢查請求返回結(jié)果緩存的時(shí)間,在緩存有效期內(nèi),瀏覽器會(huì)使用緩存的預(yù)先檢查結(jié)果判斷是否發(fā)送跨域請求。 跨域,老生常談的問題 簡述 作為一只前端菜鳥,跨域方面只懂得JSONP和CORS,并未曾深入了解。但隨著春招越來越近,就算是菜鳥也要猛振翅膀。近幾日仔細(xì)研究了跨域問題,寫下這篇文章,希望對開發(fā)者們有所幫助。在讀本文前,希望您對以下知識(shí)略有了解。 瀏覽器同源策略 n...

    rose 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<