神奇!Nginx轉發POST請求轉成GET

隨手記錄一波神奇的事情

爲了解決跨域的問題,使用了nginx,將接口轉發到另一個服務上,兩邊都是post請求,直接調用是沒問題的。

前端

但是前端調用第一個接口時,報了cancel狀態。那那不太行啊。

postman

趕緊用postman調用了一下,405,method not 支持,讀書少的我大爲震撼,他喵的,都沒錯啊,接口對的,請求也是post的,怕是有鬼哦,那隻能是Nginx有問題。

百度

輸入關鍵字「Nginx」、「post」、「get」。果然有很多人也遇到這個問題,在某些特殊的場景下(http轉發到https、nginx.conf代理轉發斜槓問題。)Nginx會將post請求自動轉換成get請求

nginx日誌

查看nginx日誌,access.log,果然postman每次發起請求,都會有一個「post請求 狀態碼301」和一個「get請求 狀態碼 405」。so 405是最後那個get請求返回的。

最後修改了nginx.conf

# 本來就是最後一個層級,將最後的斜槓去掉了,就ok了
location ^~  /data/suggest/ {
   proxy_pass   http://www.baidu.com/data/suggest/;
  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章