我正在使用jquery ajax开发一个示例应用程序。我的Login.jsp已经
<html>
<script>
$(document).ready(function() {
$("#dialog").dialog();
$("#LoginForm").submit(function()
{
var username=$("#username").val();
var password=$("#password").val();
var datastring='username '+username+ '&password '+password;
$.ajax({
url: 'Login',
type: "POST",
data: datastring,
/*error: function(){
alert("Data Error");
},*/
success: function (data){
window.open.href("success.jsp");
}
});
});
});
</script>
</head>
<body>
<div id="dialog" title="LoginDB">
<form id="LoginForm" method="post">
<fieldset>
<label>Username:</label>
<input type="text" id="username" value=""></input><br></br>
<label>Password:</label>
<input type="password" id="password" value=""></input><br></br>
<input type="submit" id="submit" class="submit" value="Log In" align="middle"></input>
</fieldset>
</form>
</div>
</body>
</html>
当我运行应用程序时,我看到在servlet中传递了null值,我检查了凭据,如果成功,则插入数据并将用户重定向到成功页面。我知道它是一个简单的错误,但我无法计算它... ..
任何人都可以指出我吗??谢谢:)
答案 0 :(得分:5)
正在生成的查询字符串是错误的。
更改var datastring ='username'+ username +'&amp; password'+ password;到
var datastring='username='+username+ '&password='+password;
更好的选择是使用jquery表单序列化来获取发布数据。
试试这个:
var postData =$("#LoginForm").serialize();
$.ajax({
url: 'Login',
type: "POST",
data: postData
.
.
.