背景:该方法为用户注册页面。有时候可以成功为200状态,有时候为405 方法不允许状态,特别费解和奇怪。 var jsonData = $("#experform").serialize(); $.ajax({ url: "${base}/common/register", type: "post", dataType: "json", data: jsonData, success: function (result) { layer.close(loading); if (result.status == "success") { layer.confirm(result.info, { icon: 1, btn: ['确定'] }, function () { window.location.href = "${base}/common/login"; }); } else { layer.alert(result.info, {icon: 2}); code(); $("#validateCode").val(""); } } })
@RequestMapping(value = "/register", method = RequestMethod.POST) @ResponseBody public Object register(UserModel user ,HttpServletRequest request,HttpSession session) throws Exception {}
刚一开始以为是方法js或者spring方法类型设置的不对,查找了不少资料走了不少弯路。后台报错也是说方法不允许,然后我打断点跟踪代码发现在发送邮件的时候报错。原来由于用户注册需要邮箱地址,我在测试环境随便填写的邮箱,导致邮箱不正确,代码里读取的模板位置也不对,程序内部发生错误导致405的发生,不一定非得是方法类型不对导致的。看到不能遇到问题就百度啊,还得跟踪一下具体的原因。