记一次排坑过程。

SpringBoot中前端向后端发起post请求,页面提示405错误,方法不被支持。

然后尝试了一下get请求,是完全没问题的。

一开始以为是控制器配置错了,但仔细排查,控制器用的是@RequestMapping(xxx),默认是支持get和post请求的。因此强制指定了post方式,修改为:

@RequestMapping(value = “xxx”, method = {RequestMethod.GET,RequestMethod.POST})

然后依然是get请求可以,post报405错误。

之后尝试直接@PostMapping(“xxx”),发现依然405。

经过最后排查,发现控制器实际上post方法已经进来了,而报405错误的位置并不是控制器本身问题,而是控制器中最后跳页面的问题:

控制器最后一行:return new ModelAndView(“xxx.html”);

就是这一行的坑!原因很简单,因为SpringBoot中只允许get方式请求静态资源!所以post方式请求控制器后,以转发形式跳转页面,会保持post方式请求html静态资源,导致405错误!

按照个人理解,这是因为SpringBoot已经默认前后端分离方式处理页面导致的。

解决方案:

1.使用重定向方式跳转静态页面:return new ModelAndView(“redirect:xxx.html”);

2.配置Web配置类,实现WebMvcConfigure接口,在其中对静态资源的post方法放行。(此方法自行查阅)

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

SpringBoot中post请求报405错误排坑相关推荐

  1. jq使用请求报405错误

    前言: 最近在开发一个公司内部项目,因为是内部自己使用,而且需求方要求内存不能太大,所以就不考虑使用Vue或React.思前想后决定使用jq来开发.一来可以满足项目要求,二来还可以练练手,毕竟用久框架 ...

  2. Postman请求报405错误

    错误原因:请求方式错误. 解决方案:检查一下自己postman的请求方式与编写代码是否一致.

  3. 前端请求接口报405错误

    前端报405错误,我个人遇到的问题:当时在写一个文件上传的时候,接口参数没有问题,但是报的是405错误,后来发现是请求头里 Content-type 属性没忘记加了

  4. (错误)SpringBoot 中使用HikariPool 报错

    SpringBoot在使用中发现报错,具体如下: 经过查资料是由于HikariPool 里的maxLifetime 设置不当导致的.一开始只是单纯的加大maxLifetime的链接.但是发现还不对,进 ...

  5. ajax的post请求出现403错误,如何解决Django中ajax发送post请求报403错误CSRF验证失败的问题...

    如何解决Django中ajax发送post请求报403错误CSRF验证失败的问题 发布时间:2021-02-05 14:23:57 来源:亿速云 阅读:92 作者:小新 这篇文章主要介绍了如何解决Dj ...

  6. mysql405错误_mysql - 在框架内php调用某个方法, nginx 报 405错误 Status Code:405 Method Not Allowed...

    在框架内方法某个方法 nginx 报 405错误 Status Code:405 Method Not Allowed Remote Address:102.224.214.168:80 Reques ...

  7. 使用ajax报405错误

    今天照葫芦画瓢学着使用ajax, 前端代码如下: <form id="form1" ><table width="90%" class=&qu ...

  8. 用浏览器测试Get与Post Webservice,Post一直报405错误,而Get能够成功的原因与解决方法

    用浏览器测试Get与Post Webservice,Post一直报405错误,而Get能够成功的原因与解决方法 参考文章: (1)用浏览器测试Get与Post Webservice,Post一直报40 ...

  9. 前端post请求报400错误

    前端post请求报400错误 发布时间: 2019-06-05 18:28:54 400的错误是由于发送请求参数没有成功 原因:参数名称类型没有对上:或者参数格式不正确 参数格式不正确,解决方法:格式 ...

最新文章

  1. 如何直接从GitHub安装npm软件包?
  2. Dvtm -- 平铺式终端
  3. python sklearn.decomposition.PCA 主成分分析, 原理详解
  4. 关于拓扑排序的问题-P3116 [USACO15JAN]会议时间Meeting Time
  5. About Me Leo是谁
  6. xtragrid 某个值 查找_二分查找(下):如何快速定位IP对应的省份地址?
  7. mysql 判断日志时间早_MySQL5.7慢查询日志时间与系统时间差8小时原因详解
  8. swift 对象转换_Swift类型转换–照原样,任何对象
  9. Mac触发角锁屏不睡眠
  10. MemCache在Windows下环境的搭建及启动
  11. 图书销售系统系统设计说明书
  12. SAP MM-MB52 物料库存查询简单操作
  13. codeup27943 星号实心六边形
  14. P3387 【模板】缩点 Tarjan强连通分量/树上dp
  15. java数组初始化 new_java 数组初始化
  16. shopapi总显示服务器异常,Shopee虾皮官方资料:打开API、串接API的常见问题与解答...
  17. 全球与中国用于食品饮料工艺的隔膜阀市场现状及未来发展趋势
  18. EJS 是什么 ,怎么用,以及优点
  19. 第三章 外科手术队伍
  20. 原生js实现红球碰撞篮球效果

热门文章

  1. 搭建springboot+mybatis+freemarker项目
  2. 电商策略2----超卖、少卖
  3. 京东物流实时风控实践
  4. C++试题 算法训练 相邻数对、画图
  5. 介绍一些免费/开源的医学影像后处理工具
  6. 影像组学工作站:医学影像组学中多模态的任务类型
  7. Xcode运行报错The operation couldn’t be completed.
  8. 关于GitHub Education(GitHub教育认证)认证
  9. 2022年,计算机er保研选计科还是电信?
  10. C++统计一个文件的行数,大写字母数,小写字母数,数字数