2013-03-13 94 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),並查看它給出的錯誤。