今天做练习项目的时候,完成注册功能的时候报了这个错误提示[org.springframework.web.HttpRequestMethodNotSupportedException: Request method ‘POST‘ not supported]
注册后并没有如想象中一样跳转到网站首页,而是报了以下错误:
There was an unexpected error (type=Method Not Allowed, status=405)的错误,方法不被允许。
网上找了很多资料,一开始以为是前后端请求方法不一致造成的,于是查看了自己代码中对应的注解,但是发现并没有问题。
@RequestMapping(value = "/reg.action",method = RequestMethod.POST)
@RequestMapping对应的方法参数也是post,而且奇怪的是表单数据居然能同步到数据库中,说明请求应该是正常的,只是页面会报错,后来偶然看到网上的一篇帖子,才恍然大悟。
<INPUT class="btn" tabIndex="4" type="submit" value="注 册" @click="reg()">
报错的原因很简单, 利用axios提交一次数据后,表单的"submit"又提交了一次,覆盖了axios的页面跳转,这也是为什么数据能正常请求页面却报错的原因。
所以只要把type属性中的submit改为button,就可以正常跳转了。之前也遇到过类似的错误,一点点小的地方就会头疼半天,现在是完全记住这个问题了