ajax帖子的问题

时间:2013-11-12 11:04:02

标签: java ajax post

您好,我在eclipse上的Web应用程序上有一个简单的注册表单。 我制作这个小脚本来控制重复的用户名。

<script type="text/javascript">

        $(document).ready(function() {
            $('#idBtnRegister').click(function(){

                username = $('#idUsername').val();

                CCService.findUsername(username,{
                    callback: function(find) {
                        if(find == true) {

                            $('#idUsername').popover({ html: true, content: 'username already exist', placement: 'right' });
                            $('#idUsername').popover('show');
                        }



                        else {
                            url = '<%= CCGestioneConstants.CONTEXT_PATH %>' + '/registered'; 

                            var params = {};
                            params["username"] = $('#idUsername').val();
                            params["name"] = $('#idName').val();
                            params["surname"] = $('#idSurname').val();
                            params["password"] = $('#idPassword').val();
                            params["email"] = $('#idEmail').val();

                            $.ajax({
                                type: 'POST',
                                data: params,
                                url: url,
                                async: false,
                                cache: false,
                            });

                        }
                    },
                    async: false
                });

            }); 

        });

</script>

CCService.findUsername这是一个DWR调用:

public boolean findUsername(String username) throws SQLException, ClassNotFoundException {
        UserDao userDao = new UserDao();
        boolean find = userDao.findUserByUsername(username);

        return find;
    }

url应该调用映射在/ registerd上的servlet

url = '<%= CCGestioneConstants.CONTEXT_PATH %>' + '/registered';  

实际上一切正常,如果用户名不存在,用户将被添加到数据库中,但是在servlet中,命令:

request.getRequestDispatcher("html/pages/registered.jsp").forward(request, response);

不要重定向jsp,但我仍然在注册页面上。

为什么?

1 个答案:

答案 0 :(得分:0)

您的电话是在Ajax中。您需要在Ajax响应上添加处理程序,并使用window.location = url将浏览器重定向到您的页面(registered.jps)。

servlet中的转发可能有效,但是当您在Ajax中调用servlet时,它不会对您的网页内容产生任何影响。