婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > nginx 配置跨域失效修復的方法示例

nginx 配置跨域失效修復的方法示例

熱門標簽:北海市地圖標注app AI電銷機器人 源碼 蘭州ai電銷機器人招商 江西外呼系統 新邵電銷機器人企業 高德地圖標注論壇 湖北ai智能電銷機器人 新科美甲店地圖標注 外呼系統打哪顯哪

nginx 配置跨域不生效 如下配置

server {
  listen  80;
  server_name localhost;
  
  # 接口轉發
  location /api/ {
   # 允許請求地址跨域 * 做為通配符
   add_header 'Access-Control-Allow-Origin' '*';
   # 設置請求方法跨域
   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
   # 設置是否允許 cookie 傳輸
   add_header 'Access-Control-Allow-Credentials' 'true';
   # 設置請求頭 這里為什么不設置通配符 * 因為不支持
   add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token';
   # 設置反向代理 
   proxy_pass 127.0.0.1:8081/;
  }
 }

網上的 nginx 跨域配置主要是以上版本,然而很多都是抄一抄,并沒有真的去實踐,故寫了下文章提醒下有需要的人,不要盲目抄,學會分析。

nginx 修改如下配置后生效

server {
  listen  80;
  server_name localhost;
  
  # 接口轉發
  location /api/ {
   # 允許請求地址跨域 * 做為通配符
   add_header 'Access-Control-Allow-Origin' '*';
   # 設置請求方法跨域
   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
   # 設置是否允許 cookie 傳輸
   add_header 'Access-Control-Allow-Credentials' 'true';
   # 設置請求頭 這里為什么不設置通配符 * 因為不支持
   add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token';
   
   # 設置 options 請求處理
   if ( $request_method = 'OPTIONS' ) { 
    return 200;
   }
   # 設置反向代理 
   proxy_pass 127.0.0.1:8081/;
  }
 }

兩者代碼區別 主要就是下面這行代碼

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

因為 post 請求 瀏覽器會發送一個 options 的預檢請求,主要將本次的請求頭 發送給服務端,若服務端允許,再發送真正的post請求,所以 f12 看到,經常 post 會發送兩次請求。因為后端 java 代碼沒有對 options 請求做出處理,導致 options 接口請求的時候,報 403 forbidden , 這里 nginx 對 options 的請求直接返回 200,不用到達接口層,直接允許 post 響應頭,即可使得上述失效配置能夠生效

附贈 一個小知識點

proxy_pass 127.0.0.1:8081/;

針對反向代理里面這個/ 加不加的問題;

訪問 http://localhost/api/user/login;

  • 加/ 則 實際訪問的是 127.0.0.1:8081/user/login;
  • 不加 / 則實際訪問的是 127.0.0.1:8081/api/user/login;

加了斜杠意味著所有的 /api 請求都會轉發到根目錄下,也就是說 /api 會被 / 替代,這個時候接口路徑就變了,少了一層 /api 。而不加斜杠的時候呢?這代表著轉發到127.0.0.1:8081的域名下, /api 的路徑不會丟失

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:南陽 大理 阿克蘇 池州 海南 自貢 黔東 黃石

巨人網絡通訊聲明:本文標題《nginx 配置跨域失效修復的方法示例》,本文關鍵詞  nginx,配置,跨域,失效,修復,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《nginx 配置跨域失效修復的方法示例》相關的同類信息!
  • 本頁收集關于nginx 配置跨域失效修復的方法示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 铜梁县| 六安市| 黄陵县| 河东区| 台东县| 北辰区| 汨罗市| 耿马| 铜山县| 台东市| 昂仁县| 略阳县| 揭西县| 博爱县| 山东省| 赞皇县| 青阳县| 松溪县| 永清县| 阳山县| 宝坻区| 炎陵县| 离岛区| 芦溪县| 梅河口市| 宣化县| 无为县| 革吉县| 邹平县| 仙桃市| 内乡县| 阿拉善盟| 弋阳县| 冀州市| 泰宁县| 瑞安市| 玛纳斯县| 高唐县| 马鞍山市| 玛多县| 南川市|