nginx 允许跨域_细谈跨域请求的桥梁
何謂跨域?這是瀏覽器本身特有的同源策略。同源,是指請求的發送方和請求接收方必須在協議、域名和端口上保持高度一致,否則,就會出現請求成功,但無法成功拿到響應結果的現象。但實際開發中,各種復雜業務的交織難免會有這種跨域請求,為此帝都的雁為大家盤點匯總一下,常見的跨域請求解決方案。
從解決方案的思想上來區分,有三種:允許請求跨域訪問資源、保證請求發起者和請求接收者同源、或后端請求中轉。
一、允許請求跨域訪問資源
需要在請求頭中設置運行跨域的參數。
1.?針對特定請求設置允許跨域
// 設置允許跨域的域名,*表示允許所有
response.setHeader("Access-Control-Allow-Origin", "*");
這種方法較為繁瑣,如果每個請求都需要跨域,那么代碼就會變得冗余臃腫。
2.?springboot2.0全局配置
全局統一配置,集中管理。
3.?nginx統一配置
????????location / {
????????????add_header Access-Control-Allow-Origin *;
????????}
二、保證請求發起者和請求接收者同源
想辦法通過代理或者網關的方式統一訪問地址
1.?nginx統一約定域名和端口
配置nginx的策略,使用項目名稱去匹配對應的服務,統一域名和端口號,nginx反向代理查詢。
2.?微服務網關統一配置
Zuul通過與Eureka的整合,實現了對服務實例的自動化維護,在使用服務路由配置時,不需要向傳統路由配置方式那樣去指定具體的服務實例地址,只需要通過Ant模式配置文件參數即可。
三、后端請求中轉
1.?HttpClient轉發
HttpClient不會出現跨域問題,所以可以通過Ajax請求本地方法,方法內部調用HttpClient訪問其他服務。這種方法也會造成代碼的冗余問題。
四、JSONP
將Ajax的dataType改為:jsonp,并設置回調函數,底層通過拼接隨機參數發送Get請求。原理是仿真script標簽的方式取請求數據。
歡迎大家和帝都的雁積極互動,頭腦交流會比個人埋頭苦學更有效!共勉!
CSDN:https://blog.csdn.net/yxh13521338301
總結
以上是生活随笔為你收集整理的nginx 允许跨域_细谈跨域请求的桥梁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python注册人工智能专业_从专业程度
- 下一篇: python 视频转场_视频剪辑什么鬼?