在瀏覽器訪問HTML頁面,發現一些靜態JSON數據沒有顯示,F12查看,如下圖所示:
可以看到請求方式為POST
將請求鏈接復制在瀏覽器地址欄訪問,可以正常請求到數據
F12查看,可以看到請求方式為GET,狀態碼為200
可知問題為:Nginx下HTML頁面POST請求靜態JSON數據返回405狀態,但用GET請求則正常返回數據。
百度后,有說,Apache、IIS、Nginx等絕大多數Web服務器,都不允許靜態文件響應POST請求。
下面進行測試:
系統為CentOS7.5,Nginx(版本:1.16.1)和Apache(版本:2.4.6)都是yum安裝
經過測試:
Apache-2.4.6可以正常響應POST請求
對Nginx的解決方法如下:
打開Nginx的配置文件:
vim /etc/nginx/conf.d/default.conf
在location下添加如下的配置:
error_page 405 =200 http://$host$request_uri;
systemctl restart nginx
修改完Nginx的配置文件后,記得重啟,讓其生效
用瀏覽器再次訪問HTML頁面,F12查看,可以看到請求方式被修改為GET,如下圖所示:
這篇文章的解決方法也可以:https://my.oschina.net/lemonzone2010/blog/174505,但操作會多一點
本文參考自:https://blog.csdn.net/weixin_30341745/article/details/97532878