nginx-405post问题解决

近日,遇到一个需求,希望通过nginx配置一个url,能够返回一个json,来实现app的一个功能。

于是,很简单的想到,在服务器放一个文件,用nginx代理一下,代码就写好了,代码如下

location ^~ /front3/versionsManager/getUpdateVersion.do {
alias /data/upload/getUpdateVersion.do;
}

 

后来发现,返回的是html,不是json,于是增加了返回类型

location ^~ /front3/versionsManager/getUpdateVersion.do {
default_type application/json;
alias /data/upload/getUpdateVersion.do;
}

 

再后来测试时候发现,客户端调用的时候

客户端用是方法是post,不是get,查阅多个资料修改如下

 

location ^~ /front3/versionsManager/getUpdateVersion.do {
default_type application/json;
alias /data/upload/getUpdateVersion.do;
error_page 405 =200 http://$host$request_uri;
}

当post请求nginx的location的时候,就会报405,于是在location中,增加了405异常的接受,首先,转成200,然后再次用get访问这个接口。

 

这种方式,只适用于没有任何内容的post请求,不然body的参数也会丢失。

posted @ 2018-10-15 18:31  李寅初  阅读(6147)  评论(0编辑  收藏  举报