使用jquery ajax传递给servlet的空值

时间:2011-05-03 17:14:03

标签: ajax jquery

我正在使用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值,我检查了凭据,如果成功,则插入数据并将用户重定向到成功页面。我知道它是一个简单的错误,但我无法计算它... ..

任何人都可以指出我吗??谢谢:)

1 个答案:

答案 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
.
.
.