jQuery AJAX页面重定向错误

时间:2014-10-07 07:26:17

标签: javascript jquery ajax jsp

$.ajax({
                url: "NewUserRegistrationServlet", 
                type: "post",                   
                cache: false,
                data : "username="+username+"&password="+encodeURIComponent(pswd)+"&email="+encodeURIComponent(email),
                dataType:"xml",
                timeout: 3000,
                success: function(data) {

                    var xml_node = $('ResultSet',data);
                    var status =  xml_node.find('result').text() ;
                    var result =  xml_node.find('status').text() ;

                    if( (result > 0) && (  status == 'SUCCESS') ) {
                        alert("This Statement is getting executed");
                        //window.location.replace("login.jsp"); // Not Working
                        //window.location.href = 'http://localhost:8080/MyProj/login.jsp'; // Not Working
                        window.open = ('login.jsp','_top'); // Not Working

                    }else{
                        $("#RegisErr").siblings("p").remove();
                        $("#RegisErr").after("<p>User Registration failed! Please Try Again.</p>");
                    }
                },
                error: function(xhr, status, text) {
                    $("#RegisErr").siblings("p").remove();
                    $("#RegisErr").after("<p>User Registration failed! Please Try Again.</p>");
                }
            });
  

我做错了什么

  1. OnSubmit - &gt;表格验证//工作正常
  2. 如果有效 - &gt;做Ajax请求//正常工作
  3. 关于Ajax的成功 - &gt;重定向到其他JSP页面//不是Woking
  4. 修改

      

    屏幕截图Chrome调试器   enter image description here

    解决了

     windows.location = "login.jsp"
    
      

    感谢大家的帮助。

2 个答案:

答案 0 :(得分:1)

使您的方法有效,即: -

1. window.location.replace("http://stackoverflow.com");
2. window.location.href = "http://stackoverflow.com";

代码运行后,浏览器仍在提交表单。 添加返回false;到处理程序以防止这种情况。

否则,只使用window.location =&#34; http://stackoverflow.com&#34;;

有关进一步说明,请参阅此帖子(window.location.href not working)。如果您仍然遇到问题,请再次为我添加标签。我会为你写一个详细的答案。

此评论是您的解决方案的代码 - https://stackoverflow.com/a/6094213/1366216

答案 1 :(得分:0)

请从结果中修剪所有空格。如果阻止,你应该写下面的行。

if(Number(result)>0 && status.trim()==="success")     {

//do anything you want

}