在浏览器访问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