问题描述
- 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>
解决方案
$(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"
解决方案二:
你在提交的时候,form表单会自动提交,加一个
时间: 2024-07-31 08:33:09