nginx发送post请求报405的问题
[root@elk-server meeting-order]# curl -X POST https://test.abc.com/
<html>
<head><title>405 Not Allowed</title></head>
<body bgcolor="white">
<center><h1>405 Not Allowed</h1></center>
<hr><center>nginx</center>
</body>
</html>
[root@elk-server meeting-order]#
nginx配置加上如下代码
location / {
error_page 405 =200 /index.html;
try_files $uri $uri/ /index.html;
}再次发送POST请求,返回的和GET请求一样了
从git上cp了一个开源的前端框架lay Ajax版本,用Nginx配置访问首页没问题
nginx配置如下:
server
{
listen 80;
server_name adminhtml.com;
index index.html index.htm index.php;
root /home/wwwroot/adminhtml;
autoindex on;
include enable-php.conf;
access_log /home/wwwlogs/access.log;
}
复制代码
但点击菜单(ajax实现),浏览器提示
Nginx: 405 Not Allowed
猜了下估计是ajax post的问题,搜索后果然
nginx是不允许post访问静态资源
解决办法
将405状态指向200 ok
配置Nginx如下:
复制代码
server
{
listen 80;
server_name adminhtml.com;
index index.html index.htm index.php;
root /home/wwwroot/adminhtml;
location ~ .*\.(htm|html|gif|jpg|jpeg|png|ico|css|js|txt|flv|doc)$ {
error_page 405 =200 $uri;
}
autoindex on;
include enable-php.conf;
access_log /home/wwwlogs/access.log;
}记得重启Nginx
service nginx reload注意: 当允许访问目录时
autoindex on;要加编码,否则,如果目录或文件有中文就会显示乱码,so, 要加一行代码
charset utf-8,gbk;文档更新时间: 2019-07-13 11:58 作者:月影鹏鹏