HTTP状态码405

HTTP状态码405项目中的需求是用 ajax 去响应了静态资源 导致报状态码 405 进行了问题排查 1 首先原因为 Apache IIS Nginx 等绝大多数 web 服务器 都不允许静态文件响应 POST 请求所以将 post 请求改为 get 请求即可 2 改成 get 请求之后发现依然还是报了 405 状态码 报错信息显示如下 这个问题是跨域造成的 解决方法有三种 a 重定向 405 错误码到 200 在 nginxserver 里面添加以下内容 root 为站点的根目录 location json

项目中的需求是用ajax去响应了静态资源,导致报状态码405 ,进行了问题排查。

1,首先 

原因为 Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求

所以将post请求改为get请求即可

2.改成get请求之后 发现依然还是报了405状态码。报错信息显示如下:

HTTP状态码405

这个问题是跨域造成的。解决方法有三种:

a. 重定向405错误码到200
在nginx server{}里面添加以下内容,root为站点的根目录

 location ~ (.*\.json) { root /data/web/coolnull.com/www; error_page 405 =200 $1; }

nginx reload下即可

[root@gaingreat blort]# curl -d 1=1 www.coolnull.com/blort/1.json //这样就可以post数据给静态文件了!!

b.修改nginx源码

源码文件位于/nginx源码目录/src/http/modules/ngx_http_static_module.c,找到如下代码:

if (r->method & NGX_HTTP_POST) { return NGX_HTTP_NOT_ALLOWED; }

整段注释掉,然后重新编译 make,不需要make install,把编译生成的nginx文件复制到sbin下的nginx文件,重启nginx即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210827.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:50
下一篇 2026年3月18日 下午11:50


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号