JAVASCRIPT:在localhost上成功进行Ajax响应后重定向到主页

时间:2015-06-22 10:56:26

标签: javascript php ajax redirect login

我正在尝试在完成用户凭据验证后从SignIn页面重定向到主页。响应非常好。 在获得成功回复后,我想重定向到主页。 我在客户端使用Javascript,在服务器端使用PHP。

我已尝试过本网站其他地方提供的所有可能解决方案。

以下是SignIn页面上重定向的脚本:

  

$(document).ready(function(){       $("#SignInForm&#34)。提交(函数(){

  var em = document.getElementById("Email").value;
    var ps = document.getElementById("Password").value;       var obj;        $.ajax({
          url: 'WebService/SignIn.php',
          type: 'post',
          async: false,
          data:       {
    Email: em,
      Password: ps
  },
          dataType: 'json',
          success: function(data)         {       var str = JSON.stringify(data);          obj = JSON.parse(str);


    if(obj.status == 1)       {
                  window.location="Homepage.html";
              }       else        {           alert("Invalid Username/Password")          }
          },
          error: function(xhr){       //alert("An error occured: " + xhr.status + " " + xhr.statusText );         alert("An error occured. Please Try Again");        }

          })





}); }); </script>

一个简单的

  

了window.location =&#34; Homepage.html&#34 ;;

应该足够了。但它不起作用。

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

window.location.href = "homepage.html"

答案 1 :(得分:0)

问题与提交操作有关:

默认情况下,实际上,提交操作会重定向到操作(表单参数)中提供的网址:https://developer.mozilla.org/en/docs/Web/API/HTMLFormElement/submit

因此,为了能够执行AJAX请求,您必须首先阻止提交执行的默认操作。

只需替换:

$("#SignInForm").submit(function(){

  var em = document.getElementById("Email").value;

使用:

$("#SignInForm").submit(function(e){ // <-- note the e
  e.preventDefault();
  var em = document.getElementById("Email").value;

在不阻止默认操作的情况下发生的实例示例:

http://jsfiddle.net/hhjqqeza/

预防默认操作的实例:

http://jsfiddle.net/hhjqqeza/1/