Nginx跨域訪問配置方式(Web反向代理跨域訪問配置)
Nginx跨域訪問配置(Web反向代理跨域訪問配置)
出于安全的原因,瀏覽器限制從腳本內(nèi)發(fā)起跨域的HTTP
請求,除非響應報文中包含了允許瀏覽器解析報文的CORS
響應頭
也就是說,響應報文的頭中要有以下幾個響應頭
Nginx
要使用add_header
添加這幾個響應頭
1.前后端分離的工程
一般情況下是使用Ajax
訪問后端接口
Ajax
的請求頭為X-Requested-With
因此服務端要允許X-Requested-With
的請求頭
add_header 'Access-Control-Allow-Headers' 'X-Requested-With';
2.服務端要配置哪些域
是可以跨域訪問到本服務器資源的
add_header 'Access-Control-Allow-Origin' '*';
注意:
- 如果使用了
add_header 'Access-Control-Allow-Credentials' 'true'
- 那么不能使用通配符
add_header 'Access-Control-Allow-Origin' 'www.baidu.com'; add_header 'Access-Control-Allow-Credentials' 'true';
3.服務器端要指定HTTP請求的方法
add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS'
案例
add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Headers' 'X-Requested-With'; add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS' # 由于跨域請求,瀏覽器會先發(fā)送一個OPTIONS的預檢請求,我們可以緩存第一次的預檢請求的失效時間 if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 2592000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; }
HTTP
請求頭詳解點這里查看。
對于跨域的配置,不是只有Nginx
可以配置,在Spring
中也提供了跨域訪問的配置
詳見CorsFilter
、CorsConfiguration
、UrlBasedCorsConfigurationSource
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Nginx的核心功能--正向代理、反向代理、緩存和Rewrite
Nginx作為一款高性能的開源Web服務器和反向代理工具,在負載均衡、緩存加速、安全防護等場景中扮演著關鍵角色,本文聚焦Nginx的四大核心功能--反向代理(七層/四層)、正向代理、緩存機制和正則表達式匹配,通過理論解析與場景化案例,深入掌握其設計思想與實踐技巧2025-05-05