在最近对接统一支付平台的过程中,相信很多产品,包括云空间都遇到了支付成功后回调支付成功页时,报405 method not allowed的情况。这是因为支付成功后,回调的请求方式是post,而大多数产品的支付成功页是一个静态页面,要知道Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求。

以nginx为例,当post请求静态页面时,会直接报405

curl -X POST http://127.0.0.1:8081/test.html

<html>

<head><title>405 Not Allowed</title></head>

<body bgcolor="white">

<center><h1>405 Not Allowed</h1></center>

<hr><center>nginx/0.5.35</center>

</body>

</html>

打开nginx底层的配置文件,我们可以看到这么一段,

if (r->method & NGX_HTTP_POST) {

return NGX_HTTP_NOT_ALLOWED;

}

rc = ngx_http_discard_request_body(r);

if (rc != NGX_OK) {

return rc;

}

可知nginx在初始化编译的时候,就默认配置了静态页面的post不支持,若要解决该问题,则有如下几种解决方案

1、将上述配置中找到的

if (r->method & NGX_HTTP_POST) {

return NGX_HTTP_NOT_ALLOWED;

}

注释掉。。。。

重新编译即可 做到这说明了nginx可以支持静态文件的post的请求了

2、在绝大多数的情况下,还是建议使用get请求来打开静态页面,包括所有产品此前对接boss支付的时候,回调都是以get发起的请求。然而,统一支付由于还有对接别的外部系统的需求,回调请求不得不配置成post。

3、修改nginx.conf配置文件,配置忽视405错误,直接改为200正常响应:

error_page 405 =200 $uri;

error_page 405 =200 @405;
location @405 {
proxy_method GET;
proxy_pass http://localhost:8080;
}
proxy_pass可配置其他地址

HTTP请求出现405 not allowed的一种解决办法经验分享相关推荐

  1. post请求html405,nginx静态文件响应post请求,405 Not Allowed

    说明: nginx不允许向静态文件提交post方式的请求,否则会返回"HTTP/1.1 405 Method not allowed"错误,至于原来还没去研究.显示如下 [root ...

  2. Nginx 静态页面POST 请求提示405 Not Allowed

    从git上cp了一个开源的前端框架lay Ajax版本,用Nginx配置访问首页没问题 nginx配置如下: server{listen 80;server_name adminhtml.com;in ...

  3. Ajax跨域post请求后端无法获取登录态原因及解决办法

    遇到个小坑,印象中不是第一次遇到了,记录一下:前后端分离时前端.后端不在同一个子域,跨域post请求后端无法获取登录态. 原因 后端通过cookie验证用户是否登录,跨域post不会自动携带上cook ...

  4. Django中ajax发送post请求,报403错误CSRF验证失败解决办法

    今天学习Django框架,用ajax向后台发送post请求,直接报了403错误,说CSRF验证失败:先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了:很显 ...

  5. “系统资源不足,无法满足请求服务“ ,而内存够大,解决办法

    重装windows系统后,如果使用了某种激活工具,那么激活系统后,电脑用过一段时间后可能会出现这种情况.此时,点击其他应用程序会出现"系统资源不足,无法满足请求服务",点击&quo ...

  6. Chrome浏览器同一窗口每次请求sessionId不同问题的一种解决办法分享

    问题描述 最近在调试一些浏览器请求页面的时候,在其他浏览器都正常,唯独只有谷歌chrome浏览器不行! 情况1:问题的最直接现象就是每次请求在后台过滤器里通过request.getSession(). ...

  7. java http 中文乱码_关于java发送http请求时中文乱码的一种解决办法

    在jsp中常见的乱码解决办法无外乎是关于get和post两种方式的,但只有切实地在实践中使用时才会注意或者说注重到其他方式.例如,在http请求头中传送中文参数,出现乱码,如何解决? 实际场景:使用S ...

  8. PS“无法完成请求,因为智能对象不能直接进行编辑”解决办法

    今天用PS对图片进行编辑时,PS弹出"无法完成请求,因为智能对象不能直接进行编辑",那么怎么解决智能对象不能进行编辑的问题呢? 解决办法:格栅化图层方可编辑 也可直接在图层区,右键 ...

  9. 跨越请求,关于后端session会话丢失的解决办法(转载)

    目前使用前后端分离的模式开发,后端提供跨域接口.前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉 大家都知道tomcat使用coo ...

最新文章

  1. 某产品经理炫耀:3年跳槽3次,月薪从8k涨到38k,跳槽涨薪最快!
  2. java面试第十五天
  3. sysbench-系统、数据库压力测试工具
  4. 汇编语言--sbb指令
  5. 解析:一种合适的数据中心建造方式有多重要?
  6. 2019年, VQA论文汇总
  7. linux mysql 5.7 双机热备_2017年5月5日 星红桉liunx动手实践mysql 主主双机热备
  8. 重新过一遍ASP.NET 2.0(C#)(5) - Localization(本地化,多语言)
  9. wav文件头字节数和文件实际字节不一致_18道MySQL经典面试题及答案,8分钟看完,你会有不一样的收获...
  10. php pdo操作mysql_PHP操作数据库详细(PDO)
  11. MyBatis-面试题
  12. java arraylist add时默认调用tostring_从一道例题谈Arrays.toString()与其他String的转换方法...
  13. 关于Oracle针对中文的md5加密
  14. linux安装nsenter工具,Docker 使用nsenter工具进入容器的操作
  15. mysql与oracle存储过程_MySQL与Oracle差异比较之五存储过程Function
  16. c++学习 -- #program once
  17. B/S架构 Web打印程序(Argox)
  18. 微信小程序模板订阅消息推送
  19. YUV422_UYVY图像格式转RGB565
  20. 连接HDMI出现没声音

热门文章

  1. 高新波:异质图像合成与识别
  2. 【报告分享】2020百度美妆行业研究-人群篇-百度营销(附下载)
  3. 2016年欧冠决赛看球小记
  4. PCIe扫盲系列博文连载目录
  5. 什么是面向对象编程?终于懂了
  6. cesium学习笔记---经纬网
  7. 这 10 种 MySQL 经典错误案例,99% 的程序员一定遇到过!你呢?
  8. 网页中的三种地址详解
  9. 共享打印机无法打印?常见的12种解决方法【详解】
  10. [Linux]关于在国产操作系统上安装Oracle数据库