激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - nginx 配置跨域失效修復的方法示例

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

2020-01-16 20:27luckyjiet Nginx

這篇文章主要介紹了nginx 配置跨域失效修復的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 修改如下配置后生效

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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/;
  }
 }

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

?
1
2
3
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 的路徑不會丟失

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

原文鏈接:https://segmentfault.com/a/1190000020725137

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人高清成人av片在线看 | 黄色大片在线观看 | 欧美国产精品久久 | 91羞羞| 最新中文字幕第一页视频 | 国产人成精品综合欧美成人 | av电影院在线观看 | 欧美一级电影网 | 色播久久 | 999久久国产 | 俄罗斯16一20sex牲色另类 | 中文字幕在线一 | 一本色道久久综合亚洲精品图片 | 久久恋 | 欧美一级做 | 99re66热这里只有精品8 | 国产精品hd免费观看 | 操碰视频在线观看 | 手机av在线电影 | 草草免费视频 | 爱高潮www亚洲精品 国产一区二区三区视频免费 | 成人短视频在线播放 | 午夜男人在线观看 | 国产美女视频一区 | 91精品久久久久久久久 | 久久69精品久久久久久国产越南 | 九九热这里只有精品8 | 国产九色在线播放九色 | 国产区二区 | 55夜色66夜色国产精品视频 | 老女人碰碰在线碰碰视频 | 日本视频在线播放 | 欧美视频在线一区二区三区 | 欧美特黄一级高清免费的香蕉 | 一级黄色毛片a | 91成人在线免费观看 | 国产一区二区免费看 | 国产成年人小视频 | 国产日韩免费观看 | 91久久久久久 | 黄色大片www |