隨手記錄一波神奇的事情
爲了解決跨域的問題,使用了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/;
}