2012-05-23 41 views
4

在blog-edit.html中,JQuery被用來發送請求到服務器端(java servlet)。爲什麼servlet中的response.sendRedirect()在收到JQuery的post請求後不起作用?

$("#btn").click(function() { 
        $.post("/blog/handler",{"content":$('#textarea').val()}, 
        function(data){ 
         alert("Data Loaded: " + data); 
         if(data.toString().length>1){ 
          alert("Saved!") 
         }else{ 
          alert("Failed!") 
         } 
        }) 

在服務器端:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      String content = request.getParameter("content"); 
      System.out.println(content); 

      response.sendRedirect("/blog/list"); 
      return; 
    } 

我看到什麼是服務器端打印從HTML內容,並警告窗口彈出說「救了!」。但是重定向功能不起作用

搜索後,我沒有選擇,只能使用jQuery來重定向:

if(data.toString().length>1){ 
          alert("Saved!") 
          window.location.replace("/blog/list") 
         } 

它的工作原理,但它不是我想要的

請幫助

+0

該servlet是否被調用?你看到你的System.out.println(內容)? – jeff

+0

是的,我可以看到servlet中的輸出 – DerekY

回答

7

使用ajax時。你不能執行服務器端重定向。

但是,在這種情況下如何在客戶端重定向有更好的方法。

See Here

+0

使用ajax時。你不能執行服務器端重定向。爲什麼?! – DerekY

+0

就是這樣。你需要自己讀一些關於它的東西。在使用ajax之前。 – Rab