Spring MVC form表单提交的问题

时间:2021-06-23 13:06:37
<script type="text/javascript">
function fnLogin(){
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
url:"login",
type:'post',
data : {
"username" : username,
"password" : password
},
contentType : "application/x-www-form-urlencoded; charset=utf-8",

});
}

function fnPostSubmit(){

$('#theform').submit();
}
</script>
</head>
<body>


Hello, this is index page.

<a href="test">go test</a>
<a onclick="testAlert()">go test2</a>

<form action="login" method="post" id="theform">
<table>
  <tr>
   <td>username</td>
   <td><input type="input" name="username" id="username"> </td>
  </tr>
  
  <tr>
   <td>password</td>
   <td><input type="password" name="password" id="password"> </td>
  </tr>
  

</table>
<input type="button" value="login" onclick="fnPostSubmit()"/>
<input type="button" value="login2" onclick="fnLogin()"/>
</form>



以上是页面部分的代码


@RequestMapping(value= "/login", method = RequestMethod.POST)
public ModelAndView login(User user,Model model){

return new ModelAndView("mytest");
}



这是controller的代码,debug模式下都能进controller,但是只有采用$('#theform').submit();才能前台返回到指定的mytest页面,而另一种则停住不动,请问这是为什么,该怎么解决。。

13 个解决方案

#1


检查下
1:url 对不对?
2:contentType 去掉试下~

#2


 $.ajax({   用ajax 干嘛 的啊

#3


1.都能进controller,说明url没问题。
2.$.ajax是异步请求,不能返回整个页面的吧.....
   表单提交才能返回页面的吧 Spring MVC form表单提交的问题

#4


@RequestMapping(value= "/login", method =  RequestMethod.POST) , 大哥, 你限定了只有post方式才能访问这个URL

#5


url:"login"?

#6


ajax写错了,最有一个属性没有逗号。

#7


ajax返回页面无效,ajax能进controller但返回的页面进不了,ajax有callback它还要继续处理它的逻辑的,所有return的页面是进不去的。

#8


application/x-www-form-urlencoded 为空 再试

#9


用$.ajax({})中url:"login",意思是向后台请求这个页面,所以肯定不会到mytest页面了,,,

#10


ajax返回结果需要给callback继续处理才能跳转

#11


ajax 访问controller  return 应该是null吧, 通过request.getWriter().printLn();返回给你前台,用callback 来接受处理结果吧。  

#12


你用ajax是想做校验吧,ajax将参数传到后台,不管什么结果都能返回信息响应到前台,ajax再加一个success方法,校验成功了再做处理

#13


@ResponseBody
@RequestMapping(value= "/login", method = RequestMethod.POST)
    public ModelAndView login(User user,Model model){
         
        return new ModelAndView("mytest");
    }

#1


检查下
1:url 对不对?
2:contentType 去掉试下~

#2


 $.ajax({   用ajax 干嘛 的啊

#3


1.都能进controller,说明url没问题。
2.$.ajax是异步请求,不能返回整个页面的吧.....
   表单提交才能返回页面的吧 Spring MVC form表单提交的问题

#4


@RequestMapping(value= "/login", method =  RequestMethod.POST) , 大哥, 你限定了只有post方式才能访问这个URL

#5


url:"login"?

#6


ajax写错了,最有一个属性没有逗号。

#7


ajax返回页面无效,ajax能进controller但返回的页面进不了,ajax有callback它还要继续处理它的逻辑的,所有return的页面是进不去的。

#8


application/x-www-form-urlencoded 为空 再试

#9


用$.ajax({})中url:"login",意思是向后台请求这个页面,所以肯定不会到mytest页面了,,,

#10


ajax返回结果需要给callback继续处理才能跳转

#11


ajax 访问controller  return 应该是null吧, 通过request.getWriter().printLn();返回给你前台,用callback 来接受处理结果吧。  

#12


你用ajax是想做校验吧,ajax将参数传到后台,不管什么结果都能返回信息响应到前台,ajax再加一个success方法,校验成功了再做处理

#13


@ResponseBody
@RequestMapping(value= "/login", method = RequestMethod.POST)
    public ModelAndView login(User user,Model model){
         
        return new ModelAndView("mytest");
    }