2 yu174242 yu174242 于 2016.02.04 15:24 提问

MVC下$.post第一次提交依旧是get方式,第二次才是post,怎么回事

需求:在login页面输入userId和pwd,如果都输入,就跳转到Home页面,我最开始使用的是$.post方式
html代码:

 <form id='form1'>
    ​<input type="text" name='userId'/>
    ​<input type="text" name='pwd'/>
    ​<input type="submit" value="login"  id="btn"/>
</form>

Jquery代码:

 $(function(){
    ​$("#btn").click(function(){
    ​    ​$.post(
    ​    ​    ​    ​'/Home/CheckLogin',
    ​    ​    ​    ​$("#form1").serialize(),
    ​    ​    ​    ​function(data)
    ​    ​    ​    ​{
    ​    ​    ​    ​    ​windows.location.href=‘@url.Action("Index","Home")’;
    ​    ​    ​    ​}
    ​    ​    ​)
    ​});
});

运行起来,输入了用户名和密码后,点击提交,能看到还是Get方式,浏览器的url上出现了?参数,第二次再提交,就可以跳转到home页面了,这是怎么回事呢?
我换了另一种提交方式 Ajax.beginForm()的方式,依旧是post,这回完全可以实现。但依旧比较困扰第一种方式,求高手解答!!!
javaScript的外部文件依次是

 <jquery-1..7.1.min.js>
<jquery.unobtrusive-ajax.js>

2个回答

showbo
showbo   Ds   Rxr 2016.02.04 15:43

    $(function(){
     ​$("#btn").click(function(){
     ​    ​$.post(
     ​    ​    ​    ​'/Home/CheckLogin',
     ​    ​    ​    ​$("#form1").serialize(),
     ​    ​    ​    ​function(data)
     ​    ​    ​    ​{
     ​    ​    ​    ​    ​windows.location.href='@url.Action("Index","Home")';
     ​    ​    ​    ​}
     ​    ​    ​);
         return false;/////////阻止表单提交
     ​});
    });

要么

 <input type="submit" value="login"  id="btn"/>

改为type="button"

sinat_31535993
sinat_31535993   Rxr 2016.02.04 16:41

你在提交的时候,form表单会自动提交,加一个

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!