2014-02-27 37 views
1

我想使用ajax调用来检查布尔值是true还是false。 这里是我的Web方法:如何使用ajax调用布尔web方法

[WebMethod] 
public Boolean Login(string uname, string password) 
{ 
    if (ValidateUser(uname, password)) 
    { 
     FormsAuthentication.Authenticate(uname, password); 
     return true; 
    } 
    return false; 
} 

,这里是我的ajax调用,但它不工作

$(document).ready(function() { 
    $('#btnLogin').click(function() { 
     var username = "test" 
     var password = "1234" 
     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "wsLogin.asmx/Login", 
      data: "{uname: '" + username + "'" + ",pwd: '" + password + "' }", 
      dataType: "Json", 
      success: function (success) { 

       alert("Boolean True"); 
      }, 
      error: function (error) { 

       alert("Boolean False"); 
      } 
     }); 
    }); 
}); 

我试图创建一个登录所以我用一个布尔值来检查用户是否验证

+0

你是什么意思不工作?具体的错误还是什么? – Muctadir

+0

错误函数并不意味着你的服务调用返回false,返回的值是在成功参数 – OuSs

+0

是的,它不工作。我需要警报来说真或假 – Linkz

回答

0

试试这个:

$(document).ready(function() { 
     $('#btnLogin').click(function() { 
      var username = "test" 
      var password = "1234" 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "wsLogin.asmx/Login", 
       data: "{uname: '" + username + "'" + ",pwd: '" + password + "' }", 
       dataType: "Json", 
       success: function (data) { 
        if(data) 
         alert("Boolean True"); 
        else 
         alert("Boolean False"); 
       }, 
       error: function (error) { 

        alert("Error"); 
       } 
      }); 
    }); 
}); 
+0

当条件为假时,它返回布尔值true – Linkz

0

不幸的是阿贾克斯似乎.toStrin克()答案等什么是一个布尔值就变成了“真”或“假”,如果你返回一个JSON数据结构,而不是像

return Json(new { Error = true, ErrorMessages = new []{e.Message} }); 

值将是真正的布尔值。

0

我有同样的问题。 我意识到error: function (error) {}永远不会被调用,即使当我的webmethod返回false

实际情况是,只要webmethod本身不会产生任何错误(如异常),那么错误函数将永远不会触发! webmethod将永远是'成功'!

所以,把你的真/假逻辑成功函数内部:

$(document).ready(function() { 
     $('#btnLogin').click(function() { 
      var username = "test" 
      var password = "1234" 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "wsLogin.asmx/Login", 
       data: "{uname: '" + username + "'" + ",pwd: '" + password + "' }", 
       dataType: "Json", 
       success: function (result) { 
        if(result == "true") 
         alert("Boolean True"); 
        else 
         alert("Boolean False"); 
       }, 
       error: function (error) { 

        error = error; //do nothing 
       } 
      }); 
    }); 
});