Nginx配置跨越

1.什麼是跨越

跨域是指a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨域的,而瀏覽器爲了安全問題一般都限制了跨域訪問,也就是不允許跨域請求資源。
例如:A網站部署在:http://localhost:81 即本地ip端口81上;B網站部署在:http://localhost:82 即本地ip端口82上。現在A網站的頁面想去訪問B網站的信息,即爲跨越訪問。在前後端部署在不同端口上比較常見。

2.方式一:配置option請求
location / {  
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';  # 如果有自定義head,需要添加在此處

    if ($request_method = 'OPTIONS') {
        return 204;
    }
} 

配置option請求後,會發現瀏覽器請求信息裏有兩條請求。因爲當跨域獲取資源時,瀏覽會出於安全的考慮會先使用OPTIONS做請求,看能否正常返回,通過返回204允許後續請求。

3.方式二:配置在同一個端口
後端可以和前端部署在同一個端口,比如後端就添加一個/api目錄。通過/api請求方式訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章