post 请求静态资源

最近在做银联云闪付扫二维码支付项目,遇到支付成功之后请求成功页面,但是该请求是 post 方式,结果就会返回 405 Not Allowed
因为一直使用的是nginx,所以也是通过配置nginx解决的。

Nginx 配置 error_page

因为返回的是405状态码,因此可以根据 error_page 控制失败以后的方式。

但是最好做到只给指定页面增加此方法,因为不清楚这种操作所引起的后果。

error_page 要在 rewrite 或者root之后。

方式一

直接转发至当前地址的get方式

1
2
rewrite ^/h5_lightning/module/icbc /h5_lightning_static/module/icbc.html break;
error_page 405 =200 $uri;

方式二

自定义转发方式,相对复杂一点。

1
2
3
4
5
6
7
8
9
......
error_page 405 =200 @405;
......

location @405 {
proxy_method GET;
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
}

这是自己理解并且实践的方式,其他方式可以查看下面的参考链接,或者在评论区留言

参考

Nginx静态资源POST请求返回405状态
nginx 设置允许post请求访问静态文件
Http 405 错误
Nginx静态资源POST请求返回405状态