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

資訊專欄INFORMATION COLUMN

Nginx實(shí)踐篇(3)- 跨域訪問

Forelax / 677人閱讀

摘要:瀏覽器一般默認(rèn)會(huì)禁止跨域訪問。因?yàn)椴话踩菀壮霈F(xiàn)跨站請(qǐng)求偽造攻擊。二控制瀏覽器允許跨域訪問通過添加等頭信息的方式控制瀏覽器緩存。

一、什么是跨域

跨域是指從一個(gè)域名的網(wǎng)頁去請(qǐng)求另一個(gè)域名的資源。比如從 www.a.com 頁面去請(qǐng)求 www.b.com 的資源。

瀏覽器一般默認(rèn)會(huì)禁止跨域訪問。因?yàn)椴话踩菀壮霈F(xiàn) CSRF(跨站請(qǐng)求偽造)攻擊。

二、Nginx控制瀏覽器允許跨域訪問

Nginx通過添加 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 等HTTP頭信息的方式控制瀏覽器緩存。

"Access-Control-Allow-Origin" 設(shè)置允許發(fā)起跨域請(qǐng)求的網(wǎng)站
"Access-Control-Allow-Methods" 設(shè)置允許發(fā)起跨域請(qǐng)求請(qǐng)求的HTTP方法
"Access-Control-Allow-Headers" 設(shè)置允許跨域請(qǐng)求包含 Content-Type頭
ngx_http_headers_module 語法
Syntax:    add_header name value [always];
Default:    —
Context:    http, server, location, if in location
應(yīng)用實(shí)例

1. vim conf.d/cross_site.conf

# 配置網(wǎng)站www.a.com
server {
    server_name www.a.com;
    root /vagrant/a;
    
    # 允許 http://www.b.com 使用 GET,POST,DELETE HTTP方法發(fā)起跨域請(qǐng)求
    add_header Access-Control-Allow-Origin http://www.b.com;
    add_header Access-Control-Allow-Method GET,POST,DELETE;
}

# 配置網(wǎng)站www.b.com
server {
    server_name www.b.com;
    root /vagrant/b;
}

# 配置網(wǎng)站www.c.com
server {
    server_name www.c.com;
    root /vagrant/c;
}

2. nginx -s reload 重新載入nginx配置文件

3. 創(chuàng)建 /vagrant/a/a.txt/vagrant/b/index.html/vagrant/c/index.html 文件

vim /vagrant/a/a.txt

Hello,I"m a!

/vagrant/b/index.html



    
        
        Ajax跨站訪問b
    
    
        

Ajax跨站訪問b -

/vagrant/c/index.html



    
        
        Ajax跨站訪問c
    
    
        

Ajax跨站訪問c -

4. 配置客戶端的hosts文件(使用真是域名的可以忽略)

windows: C:WindowsSystem32driversetchosts
linux: /etc/hosts

添加如下內(nèi)容,并保存(192.168.33.88為筆者虛擬機(jī)的IP,需自行替換為自己的IP):

192.168.33.88 www.a.com
192.168.33.88 www.b.com
192.168.33.88 www.c.com

5. 瀏覽器分別訪問 http://www.b.com/index.htmlhttp://www.c.com/index.html

http://www.b.com/index.html

Ajax跨站訪問b - Hello,I"m a!

http://www.c.com/index.html

Ajax跨站訪問c - 請(qǐng)求失敗!

打開瀏覽器的開發(fā)者模式Console,還可以發(fā)現(xiàn) http://www.c.com/index.html 的頁面出現(xiàn)報(bào)錯(cuò):

Failed to load http://www.a.com/a.txt: The "Access-Control-Allow-Origin" header has a value "http://www.b.com" that is not equal to the supplied origin. Origin "http://www.c.com" is therefore not allowed access.

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/8084.html

相關(guān)文章

  • Nginx實(shí)踐篇3)- 跨域訪問

    摘要:瀏覽器一般默認(rèn)會(huì)禁止跨域訪問。因?yàn)椴话踩菀壮霈F(xiàn)跨站請(qǐng)求偽造攻擊。二控制瀏覽器允許跨域訪問通過添加等頭信息的方式控制瀏覽器緩存。 一、什么是跨域 跨域是指從一個(gè)域名的網(wǎng)頁去請(qǐng)求另一個(gè)域名的資源。比如從 www.a.com 頁面去請(qǐng)求 www.b.com 的資源。 showImg(https://segmentfault.com/img/remote/1460000015873212?...

    twohappy 評(píng)論0 收藏0
  • Nginx實(shí)踐篇3)- 跨域訪問

    摘要:瀏覽器一般默認(rèn)會(huì)禁止跨域訪問。因?yàn)椴话踩菀壮霈F(xiàn)跨站請(qǐng)求偽造攻擊。二控制瀏覽器允許跨域訪問通過添加等頭信息的方式控制瀏覽器緩存。 一、什么是跨域 跨域是指從一個(gè)域名的網(wǎng)頁去請(qǐng)求另一個(gè)域名的資源。比如從 www.a.com 頁面去請(qǐng)求 www.b.com 的資源。 showImg(https://segmentfault.com/img/remote/1460000015873212?...

    王巖威 評(píng)論0 收藏0
  • 跨域」利用node.js實(shí)踐前端各種跨域方式(下)

    摘要:技術(shù)的學(xué)習(xí)也是如此唯有實(shí)踐才能更清楚的明白原理和加深印象,因此本文會(huì)利用對(duì)前端的各種跨域方式進(jìn)行實(shí)踐,強(qiáng)烈建議一步一步跟著做,相信你肯定會(huì)對(duì)跨域有更深層次的理解。 前言 常言道,讀萬卷書,不如行萬里路。技術(shù)的學(xué)習(xí)也是如此,唯有實(shí)踐才能更清楚的明白原理和加深印象,因此本文會(huì)利用node.js對(duì)前端的各種跨域方式進(jìn)行實(shí)踐,強(qiáng)烈建議一步一步跟著做,相信你肯定會(huì)對(duì)跨域有更深層次的理解。而由于篇...

    Jenny_Tong 評(píng)論0 收藏0
  • Nginx

    摘要:此外,其也能夠提供強(qiáng)大的反向代理功能。是由為俄羅斯訪問量第二的站點(diǎn)開發(fā)的,第一個(gè)公開版本發(fā)布于年月日。 keepalived+nginx 實(shí)現(xiàn)高可用雙機(jī)熱備 + 負(fù)載均衡架構(gòu) 1 準(zhǔn)備4個(gè)ubuntu16.04虛擬機(jī)(啟用網(wǎng)卡二并使用橋接模式):A服務(wù)器:192.168.0.103 主B服務(wù)器:192.168.0.104 主(備) 前端工程師學(xué)習(xí) Nginx ...

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

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

0條評(píng)論

Forelax

|高級(jí)講師

TA的文章

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