【问题标题】:How to redirect to a new page in jquery callback function如何在jquery回调函数中重定向到新页面
【发布时间】:2011-08-18 09:39:39
【问题描述】:

我正在使用 jquery 和 servlets 开发一个应用程序。我在我的 Login.jsp 中一直使用 jquery 主题滚轮作为界面

<html>
<head>
<script>
$(document).ready(function() {
$("#dialog").dialog();
}); 
 </script>

  <script>
    $("#submit").click(function(){
    $("#LoginForm").submit(function()
    {
     var username=$("#username").val();
     var password=$("#password").val();
     var datastring='username='+username+ '&password= '+password;

   $.ajax({
   type: "POST",
   url:'Login',
   data: datastring
   error: function(){
            alert("Data Error"); 
        },
        success: function (data){
            window.location.replace("Items.jsp");
        }
     });
    });
});
  </script>

</head>
 <body style="font-size:62.5%;">
<div id="dialog" title="Login">
<form id="LoginForm" method="post">
<fieldset>
<label>Username:</label>
<input type="text" id="username"></input><br></br>
<label>Password:</label>
<input type="password" id="pwd"></input><br></br>
<input type="submit" id="submit" value="Log In" align="middle"></input>
</fieldset>
</form>
</div>

数据正在传递给 servlet,一旦登录成功,我希望用户被重定向到一个新页面,比如 Items.jsp。在我的回调中,我使用了 window.location.replace("Items.jsp")。我无法重定向。

我尝试使用 response.sendRedirect("Items.jsp") 并返回 *"Items.jsp" *

但我无法将其重定向到新页面。我哪里出错了..

谢谢:)

【问题讨论】:

  • 您是否尝试过在成功中添加警报?

标签: java servlets jquery


【解决方案1】:

你试过window.location = "items.jsp"吗?

编辑

我发现您在 ajax 调用中缺少“url:”参数。

看看我这里的例子。

http://jsfiddle.net/zuSZg/

【讨论】:

  • @netbrain-yes 我试过 window.location..但我仍然在同一个页面,尽管登录
  • 那你检索重定向值并设置它的方式一定有问题。
  • @netbrain...在我的servlet中,我只是检查身份验证,然后我想在成功时重定向到新页面...可以通过在我的servlet本身中使用response.sendRedirect来完成而不需要回调吗??
  • @netbrain-我在编辑时删除了 url..它包含在我的代码中
  • 不行,你必须让浏览器重定向到主页。
【解决方案2】:

将 window.location 设置为新 URL 会将当前网页更改为指定位置。

window.location = "http://www.stackoverflow.com/"

【讨论】:

    【解决方案3】:

    试试window.location.href ="Items.jsp"

    来源:window.location MDC

    【讨论】:

    • :) 我在编辑我的答案后才看到你的答案 这是在阅读 MDC 之后。 window.location.href 也应该可以工作。我会回复我的答案
    • @naveen ...在我的servlet中,我只检查身份验证,然后我想在成功时重定向到新页面...可以通过在我的servlet本身中使用response.sendRedirect来完成而不需要回调吗??我将 servlet 中的凭据传递给登录方法,在该方法中完成检查并将用户定向到新页面。在这种情况下是否需要回调?
    • @Sadhwika Chandramohan:最好在服务器上进行重定向。客户端代码可以很容易地操作。在您的情况下,我们不需要 ajax 调用,只需发布​​表单并在凭据良好时重定向
    • @naveen.. 哦,您的意思是说我可以使用普通的 post 方法将数据传递给 servlet 并仅从 servlket 重定向到新页面...谢谢...我是初学者java和jquery ..谢谢:)
    【解决方案4】:
    Use this :
     $(window.location).attr('href', 'http://www.google.com');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 2019-08-17
      • 2017-08-17
      • 1970-01-01
      相关资源
      最近更新 更多