今天在写一个ajax请求的时候出现ajax请求成功后,页面居然会出现刷新,url有跳转,找了半天,终于发现了问题所在,原来我在表单里面有一个 <input type="button" onclick="submit()"/>元素,之前用的是表单提交的方式发送的请求,改成ajax请求后忘记删除,但是我好奇的是我在js里面写的submit()方法已经被删除了,怎么还会提交表单呢?
我仔细一看,原来button的onclick事件触发的submit()方法还是会提交表单,如果将该方法改一下名字,表单就不会提交了!。

 下面是我的jsp页面:                          

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
 <%@ include file="/jsp/meta.jsp" %>
 <title>登录页面</title>
</head>
<body>

    <form action="login/userLogin" method="post">

      用户名: <input type="text"  name="userName"    id="userName" /><span  id="user_message"></span> <br/>                
  密码:<input type="password" id="pwd" name="pwd"/><span id="pwd_message"></span> <br/>
  <span><button id="btn" onclick="submit()">登录</button></span>

</form>
</body>
</html>

<script type="text/javascript">
$(function(){
var oBtn =document.getElementById('btn');
//ajax请求获取用户登录信息
$(oBtn).click(function()
{
var login_message ={'userName':$("#userName").val(),'pwd':$("#pwd").val()};
$.ajax({
url:'<%=ctx%>/login/userLogin',
type:'post',
data:login_message,
//contentType: "application/json; charset=utf-8",
dataType:'json',
success:function(data){

console.log(JSON.stringify(data));
console.log(eval('('+data+')'));
var result= eval('('+data+')');

},
error:function(data){
console.log(JSON.stringify(data));
}

});
//oForm.submit=true;
});

});
</script>