【问题标题】:webservice return bool, using ajaxwebservice返回bool,使用ajax
【发布时间】:2011-01-13 10:59:35
【问题描述】:

我得到了一个 jQuery 提示,它是一个密码验证。我使用 ajax 网络服务来完成这项任务。现在我的困惑是我应该如何处理 ajax 调用并使函数 bool?

我大约 2 小时前开始使用 ajax 和 web 服务,所以请注意。

        $(document).ready(function() {
    $("#sayHelloButton").click(function() {
            jPrompt('Password:', 'Password', 'Password', function(r) {
                if (CheckPassword(r) == true) window.location = "http://www.asp.net";
                else alert('Wrong password');
            });
        });
    });


function CheckPassword(psw) {
        $.ajax({
            type: "POST",
            url: "dummywebservice.asmx/CheckPassword",
            data: "{'" + $('#name').val() + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json"              
        });
    }

网络服务

[WebMethod]
    public bool CheckPassword(string password)
    {
        if(!string.IsNullOrEmpty(password))
        {
            if (password == "testpassword")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return false;
        }            
    }

【问题讨论】:

    标签: asp.net javascript jquery web-services asp.net-ajax


    【解决方案1】:

    更改您的 CheckPassword 函数以接受 true 和 false 回调,如下所示:

    function CheckPassword(psw, ifTrue, ifFalse) {
       $.ajax({
          type: "POST",
          url: "dummywebservice.asmx/CheckPassword",
          data: "{'" + $('#name').val() + "'}",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function(data, textStatus, XMLHttpRequest) {
              if (data)
                 ifTrue();
              else
                 ifFalse();
          }
       });
    }
    

    然后像这样调用函数:

    $(document).ready(function() {
       $("#sayHelloButton").click(function() {
       jPrompt('Password:', 'Password', 'Password', function(r) {
          CheckPassword(r, 
             function ifTrue() {
                window.location = "http://www.asp.net";
             },
             function ifFalse() {
                alert('Wrong password');
             }
          );
       });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多