Nginx的跨域配置
使用SpringBoot開發前後端分離的應用,可以使用Nginx作為閘道器來統一解決跨域問題。這種好處是,可以不修改應用程式碼的情況下,讓應用支援跨域。
對於很多不支援的跨域的網站,你也可以弄個Nginx給它“加個Buff”,也就可以進行跨域訪問了。 ????
Nginx配置(這個配置,可以解決 95% 以上的跨域問題)
server {
listen 80;
server_name localhost 127.0.0.1;
location / {
# 允許跨域請求的“域”
add_header 'Access-Control-Allow-Origin' $http_origin;
# 允許客戶端提交Cookie
add_header 'Access-Control-Allow-Credentials' 'true';
# 允許客戶端的請求方法
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
# 允許客戶端提交的的請求頭
add_header 'Access-Control-Allow-Headers' 'Origin, x-requested-with, Content-Type, Accept, Authorization';
# 允許客戶端訪問的響應頭
add_header 'Access-Control-Expose-Headers' 'Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma';
# 處理預檢請求
if ($request_method = 'OPTIONS') {
# 預檢請求快取時間
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
# SpringBoot 應用訪問路徑
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
關於Nginx的下載,配置,啟動等這些雜七雜八的東西,這裡不多贅述,如果你還沒接觸過Nginx,現在就是個好機會,。
SpringBoot Controller
// 在 8080 埠 提供服務
@RequestMapping("/test")
@RestController
public class TestController {
@GetMapping("/cors")
public Object corsTest () {
return Collections.singletonMap("name", "SpringBoot中文社群");
}
}
測試
瀏覽器新開一個頁面就可以進行測試,主要能執行js。跨域嘛,只要是埠,url,協議。任意不同就可以了。
跨域失敗
直接請求SpringBoot服務(8080埠),跨域失敗。
跨域成功
請求Nginx閘道器服務(80埠),跨域成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/964/viewspace-2825850/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 014.Nginx跨域配置Nginx跨域
- Nginx配置解決NetCore的跨域NginxNetCore跨域
- nginx配置跨域文件記錄Nginx跨域
- NGINX如何配置跨域請求Nginx跨域
- Nginx解決前端跨域問題 CORS跨域配置Nginx前端跨域CORS
- Nginx開發環境跨域配置Nginx開發環境跨域
- CORS方式實現ajax跨域 — nginx配置CORS跨域Nginx
- Nginx常用的配置 多臺服務 跨域 HTTPSNginx跨域HTTP
- Vue 跨域問題解決辦法 Vue 配置防止跨域 nginx 重定向防止跨域Vue跨域Nginx
- Nginx 配置 Vue 專案解決跨域問題NginxVue跨域
- Nginx 配置 cros 跨域以及遇到 401 響應的問題NginxROS跨域
- Nginx跨域問題Nginx跨域
- vue解決前端跨域到nginx配置項小記Vue前端跨域Nginx
- eggjs 跨域配置JS跨域
- Laravel 配置跨域Laravel跨域
- CORS跨域與Nginx反向代理跨域優劣對比CORS跨域Nginx
- Nginx反向代理實現跨域Nginx跨域
- 跨域共享CORS詳解及Gin配置跨域跨域CORS
- springboot 跨域配置類Spring Boot跨域
- 使用Nginx來解決跨域的問題Nginx跨域
- springboot2.4跨域配置的方法Spring Boot跨域
- 後端跨域配置(通用)後端跨域
- IIS配置多域名跨域跨域
- Linux+apache 跨域配置LinuxApache跨域
- SpringBoot 允許跨域配置Spring Boot跨域
- Nginx 反向代理解決跨域問題Nginx跨域
- nginx /Java 解決跨域問題方案NginxJava跨域
- nginx 解決圖片跨域問題Nginx跨域
- nuxt使用axios的跨域處理配置UXiOS跨域
- 跨域請求後端配置跨域後端
- 簡單對比一下CORS跨域與Nginx反向代理跨域優劣CORS跨域Nginx
- Nginx 反向代理解決跨域問題分析Nginx跨域
- proxy 跨域配置, 針對有axios的baseURL跨域iOS
- 跨域資源共享配置錯誤跨域
- 靜態資源跨域解決辦法--nginx跨域Nginx
- 跨域問題(普通跨域和springsecurity跨域)跨域SpringGse
- vue webpack配置解決跨域問題VueWeb跨域
- vue/cli 3.x配置proxyTable跨域Vue跨域