2013-01-07 38 views
0

在下面的JavaScript函数中,当我使用firebug逐行调试时,'windows.location'完美地工作,它会重定向到给定的链接。但是,当我运行它而没有使用萤火虫进行调试时,即使密码和用户名正确,页面重定向也不会发生。任何人都可以解释我为什么?JavaScript函数没有重定向到给定的链接

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#btnSubmit').click(function() { 
      var uname = $('#txtUserName').val(); 
      var Password = $('#txtPassword').val(); 
      if (uname != null && Password != null) { 
       $.ajax({ 
        type: "get", 
        data: { type: "login", Uname: uname, Pword: Password,ran:Math.random() }, 
        contentType: "application/json", 
        url:"/CreatePdf.ashx", 
        success: function (result) { 
         if(result=='1') 
         { 
         window.location = "/home.aspx"; 
         } 
        } 
       }); 
      } 
      else { 
       document.getElementById('spPassword').innerHTML = "Please Enter Username/Password"; 
      } 
     }); 
     }); 
</script> 
+1

最深的“if”中的代码是否运行?结果=='1'是否为真? – Marcus

+1

给你的'.ajax'调用添加一个'error'处理程序,看看它是否打了。你确定这个请求正在发送吗?你确定回复了吗? –

回答

1

要么成功函数没有被调用(因为与阿贾克斯的问题),或者result参数不是字符串"1"。我们没有水晶球,看看发生了什么,所以你必须自己进行调试:

$.ajax({ 
    …, 
    success: function (result) { 
     console.log("result: ", result); 
     if(result=='1') 
      window.location = "/home.aspx"; 
    }, 
    error: function(jqXHR, status, error) { 
     console.log("Ajax failed with "+status+" due to "+error); 
    } 
); 

还可以使用你的开发工具,网络面板,检查服务器是否发送预期的响应。