2013-03-13 93 views
0

我有一个login.jsp页面,用户输入用户名和密码。使用ajax($ .post)将用户名和密码发送到服务器。身份验证完成后,我想将用户重定向到index.jsp页面。使用AJAX登录后重定向到JSP页面

JS:

function Login() 
{ 
    var traderName = document.getElementById('username').value; 
    var traderPass = document.getElementById('password').value; 

    //SetLoginLoading(); 

    data = {action:'login',username:traderName,password:traderPass}; 

    $.post('TraderServlet',$.param(data),function(response){ 
    }); 
    return false; 
} 

的Servlet

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
       .... 
       login(request, response); 
       .... 
    }  
    private void login(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     String name = request.getParameter(PARAMETER_NAME); 
     String pass = request.getParameter(PARAMETER_PASS); 
     traderBean.login(name, pass); 

     response.sendRedirect("index.jsp"); 
    } 

我试图用response.sendRedirect是(),但它不工作。我应该使用jQuery重定向用户使用ajaxCallback?

谢谢。

+1

是的,我认为你应该尝试在你的ajax回调中使用客户端重定向。 – andri 2013-03-13 22:24:12

+1

如果您将使用ajax请求,请确保将响应内容更改为文本,然后使用响应内容编写JSON字符串以处理客户端的结果。你可以像'{“resultCode”:“0”,“errorMessage”:“”}“或类似的简单结构,但这取决于你的功能需求。 – 2013-03-14 04:13:29

回答

0

一般而言,如果您只是要重定向,那么使用AJAX确实没有意义,因为您可以通过直接从表单处理servlet来完成此操作。

对于你的问题,首先检查你的servlet的url模式。确保它实际上被调用。如果是,则如果它具有类似

/TraderServlet

然后,预计index.jsp是也在根文件夹Web下一个URL模式。这可能是因为你根本没有重定向到你期望的目标。

检查的一种方法是(如果您使用Chrome)使用调试工具(Windows/Nix上的F12,Mac上的Ctrl-Shift-I),并查看它给出的错误。