Nginx 静态文件中的 POST 请求返还 405 Method not allowed 错误

红薯 发布于 2012/11/05 18:53
阅读 10K+
收藏 3

刚 RunJS 有用户反馈的问题,上传 JSON 文件,然后用 Ajax 的 POST 方法去请求 JSON,则报 405 Method not allowed 错误。

网上有两种解决方法。

1. 重定向 405 错误码到 200

location ~ ^/(js/sandbox|uploads/rs|img)/ {
    root /data/runjs/webapp;
    error_page 405 =200 $uri;
}

2. 修改 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 即可。

目前 RunJS 使用第一种方法解决。

加载中
0
mark35
mark35
什么是JSON 文件?
红薯
红薯
RunJS 允许上传 JSON 文件,用于测试 JS 处理 json 数据
0
夏悸
夏悸
嘿嘿....   解决啦.... 
0
gakaki
gakaki

D:\tengine-1.4.2\tengine-1.4.2\src\http\modules\ngx_http_static_module.c

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

返回顶部
顶部