2013-08-06 144 views
0
$('#loginbtn').click(function() { 
      var userName = document.getElementById('uid').value; 
      var password = document.getElementById('pwd').value; 

      $.ajax({ 
       type: "POST", 
       url: "/LoginNew.aspx/Authenticate", 
       data: "{ 'userName': '" + userName + "' ,'password': '" + password + "' }", 
       async: false; 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: a(), 
       error: function(e) { 
        alert(e.valueOf()); 
       } 
      }); 

     alert("test"); 
      function a() { 
       window.location.href = "Login.aspx"; 
      } 
     }); 

因为我接受了答案,它转到服务器端代码验证用户和控制传递给“a”函数,但它不显示login.aspx页面...任何线索?Ajax调用不起作用

+1

什么不行,呼叫或重定向? – Spokey

+0

它永远不会调用验证方法。 –

回答

3

应该

$('#loginbtn').click(function() { 
    var userName = document.getElementById('uid').value; 
    var password = document.getElementById('pwd').value; 

    $.ajax({ 
     type : "POST", 
     url : "/LoginNew.aspx/Authenticate", 
     data : { 
      userName: userName , 
      password: password 
     }, 
     async : false, // not ; need to use , 
     contentType : "application/json; charset=utf-8", 
     dataType : "json", 
     success : a, // pass the callback reference, don't invoke it 
     error : function(e) { 
      alert(e.valueOf()); 
     } 
    }); 

    alert("test"); 
    function a() { 
     window.location.href = "Login.aspx"; 
    } 
}); 
+0

它的工作..谢谢很多。 –

+0

它不会切换到“Login.aspx” –

+0

它不会切换到“Login.aspx” –

2

您正在生成的JSON是无效的。不要尝试手工生成JSON,请使用JSON库。

JSON.stringify({ userName: userName, password: password }) 

调用a()而不是作为成功处理程序分配a。如果要分配函数而不是返回值,请删除()

+0

window.location.href =“Login.aspx”;不起作用,虽然控制功能“a”。 –