• SpringBoot中post请求报405错误排坑


    记一次排坑过程。

    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开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    安全狗云眼的主要功能有哪些?
    部署Kubernetes Dashboard
    Unity3D教程:手游开发常用排序算法 -上
    springboot+vue实现登录案例(附VUE整个项目代码)
    【C++入门到精通】C++入门 ——搜索二叉树(二叉树进阶)
    基于armv8的kvm实现分析(三)kvm初始化流程
    Python教程(15)——Python流程控制语句详解
    Spark面试题(一)
    Optional用法与争议点
    模板字符串
  • 原文地址:https://blog.csdn.net/m0_67394002/article/details/126114363