欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery ajax調(diào)用webservice注意事項

 更新時間:2017年10月08日 14:17:41   投稿:lijiao  
這篇文章主要為大家詳細介紹了jQuery ajax調(diào)用webservice的注意事項,具有一定的參考價值,感興趣的小伙伴們可以參考一下

jquery ajax調(diào)用webservice(C#)要注意的幾個事項:

1、web.config里需要配置2個地方

<httpHandlers>
   <remove verb="*" path="*.asmx"/>
   <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
  </httpHandlers>

在<system.web></system.web>之間加入

<webServices>
   <protocols>
    <add name="HttpPost" />
    <add name="HttpGet" />
   </protocols>
  </webServices>

2.正確地編寫webserivce的代碼

/// <summary>
  /// UserValidate 的摘要說明
  /// </summary>
  [WebService(Namespace = "http://tempuri.org/")]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  [System.ComponentModel.ToolboxItem(false)]
  // 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請取消對下行的注釋。
   [System.Web.Script.Services.ScriptService]
  public class UserValidate : System.Web.Services.WebService
  {
    DFHon.Content.Common.rootPublic rp = new DFHon.Content.Common.rootPublic();
    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string ValidateUserLogState()
    {
      string result = "";
      HttpCookie cookie = HttpContext.Current.Request.Cookies["DHFonMenberInfo"];
      if (cookie != null)
      {
        string username = System.Web.HttpUtility.UrlDecode(cookie["MenberName"]);
        int ipoint = 0;
        int gpoint = 0;
        try
        {
          DataTable dt = UserBll.ExecuteUserAllInfo(username);

          if (dt.Rows.Count > 0)
          {
            ipoint = int.Parse(dt.Rows[0]["iPoint"].ToString());
            gpoint = int.Parse(dt.Rows[0]["gPoint"].ToString());
          }
        }
        catch
        { }
        result = "{'user':{'id':'" + cookie["UserId"] + "','name':'" + username + "','message':'" + rp.getUserMsg(DFHon.Global.CurrentCookie.UserName) + "','ipoint':'" + ipoint.ToString() + "','gpoint':'" + gpoint.ToString() + "'}}";
      }
      else
      {
        result = "{'user':{'id':'0','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
      }
      return result;
    }

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string UserLogin(string userName, string userPwd)
    {
      string returnVal = "";
      try
      {
        GlobalUserInfo info;
        DFHon.Content.UserLogin _UserLogin = new DFHon.Content.UserLogin();
        EnumLoginState state = _UserLogin.PersonLogin(HttpUtility.UrlDecode(userName), userPwd, out info);
        if (state == EnumLoginState.Succeed)
        {
          DFHon.Global.CurrentCookie.Set(info);
          DFHon.API.PDO.DiscuzNT.PassportLogin.UserLogin(Server.UrlDecode(userName), userPwd, -1);
          int ipoint = 0;
          int gpoint = 0;
          DataTable dt = UserBll.ExecuteUserAllInfo(userName);

          if (dt.Rows.Count > 0)
          {
            ipoint = int.Parse(dt.Rows[0]["iPoint"].ToString());
            gpoint = int.Parse(dt.Rows[0]["gPoint"].ToString());
          }
          returnVal = "{'user':{'id':'" + info.UserId.ToString() + "','name':'" + info.UserName + "','message':'" + rp.getUserMsg(userName) + "','ipoint':'" + ipoint.ToString() + "','gpoint':'" + gpoint.ToString() + "'}}";
        }
        else
        {
          int ids = 0;//狀態(tài):-2用戶被鎖定 -1用戶名密碼錯誤
          switch (state)
          {
            case EnumLoginState.Err_Locked:
              ids = -2;
              break;
            case EnumLoginState.Err_UserNameOrPwdError:
              ids = -1;
              break;
            default:
              break;
          }
          returnVal = "{'user':{'id':'" + ids + "','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
        }
      }
      catch
      {
        returnVal = "{'user':{'id':'0','name':'','message':'0','ipoint':'0','gpoint':'0'}}";
      }
      return returnVal;
    }
    [WebMethod]
    public string UserLogout()
    {
      if (HttpContext.Current.Request.Cookies["DHFonMenberInfo"] != null)
      {
        HttpCookie cookie = new HttpCookie("DHFonMenberInfo");
        cookie.Expires = System.DateTime.Now.AddDays(-1);
        cookie.Domain = DFHon.Config.BaseConfig.getV("weblogin");
        HttpContext.Current.Response.AppendCookie(cookie);
      }
      return "1";
    }
    DFHon.Content.user UserBll = new DFHon.Content.user();
    [WebMethod]
    public string ValidateUserEmail(string email)
    {
      string result = "0";//返回的結(jié)果 -2郵箱為空 -1郵箱格式不正確 0郵箱存在 1填寫正確
      if (string.IsNullOrEmpty(email))
      {
        result = "-2";//郵箱為空
      }
      else if (!IsValidEmail(email))
      {
        result = "-1";//郵箱格式不正確
      }
      else if (UserBll.sel_useremail(email) > 0)
      {
        result = "0";//郵箱存在
      }
      else
      {
        result = "1";//可以注冊
      }
      return result;
    }

    [WebMethod]
    public string ValidateUserName(string username)
    {
      string result = "0";//返回值:-1用戶名長度為2-16;0用戶名存在;1可以注冊
      if (username == "" || username == null || username.Length < 2 || username.Length > 16)
      {
        result = "-1";
      }
      else if (UserBll.sel_username(username) != 0)
      {
        result = "0";
      }
      else
      {
        result = "1";
      }
      return result;
    }

    public bool IsValidEmail(string strIn)
    { // Return true if strIn is in valid e-mail format. 
      return System.Text.RegularExpressions.Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
    }
  }

WebService

<script>
    $(function() {
      $("#userloging").show();
      //登錄框處理開始
      //加載登錄狀態(tài)
      $.ajax({
        type: "POST", //訪問WebService使用Post方式請求
        contentType: "application/json;charset=utf-8", //WebService 會返回Json類型
        url: "/API/Service/UserValidate.asmx/ValidateUserLogState", //調(diào)用WebService
        data: "{}", //Email參數(shù)
        dataType: 'json',
        beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); },
        error: function(x, e) { },
        success: function(response) { //回調(diào)函數(shù),result,返回值
          $("#userloging").hide();
          var json = eval('(' + response.d + ')');
          var userid = json.user.id;
          if (userid > 0) {
            $("#spanusername").html(json.user.name);
            $("#spanmessagenum").html(json.user.message);
            $("#userloginsucced").show();
            $("#userloginbox").hide();
          }
        }
      });
      //登錄
      $("#userlogbutton").click(function() {
        
        var username = $("#username").val();
        var userpwd = $("#userpassword").val();
        if (username != "" && userpwd != "") {
          $("#userloging").show();
          $.ajax({
            type: "POST", //訪問WebService使用Post方式請求
            contentType: "application/json;charset=utf-8", //WebService 會返回Json類型
            url: "/API/Service/UserValidate.asmx/UserLogin", //調(diào)用WebService
            data: "{userName:'" + username + "',userPwd:'" + userpwd + "'}", //Email參數(shù)
            dataType: 'json',
            beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); },
            error: function(x, e) {
            },
            success: function(result) { //回調(diào)函數(shù),result,返回值
              $("#userloging").hide();
              var json = eval('(' + result.d + ')');
              var userid = json.user.id;
              if (userid > 0) {
                $("#spanusername").html(json.user.name);
                $("#spanmessagenum").html(json.user.message);
                $("#userloginsucced").show();
                $("#userloginbox").hide();
              }
              else {
                switch (userid) {
                  case -2:
                    alert("用戶被鎖定!請30分鐘后再登錄!");
                    $("#username").focus();
                    break;
                  case -1:
                    alert("用戶名或密碼錯誤!請核對您的用戶名和密碼!");
                    $("#userpassword").focus();
                    break;
                  default:
                    alert("登錄失??!請核對您的用戶名和密碼之后重試!");
                    $("#userpassword").focus();
                    break;
                }
              }
            }
          });
        }
        else if (username == "") {
          alert("用戶名不能為空!");
          $("#username").focus();
        }
        else if (userpwd == "") {
          alert("密碼不能為空!");
          $("#userpassword").focus();
        }
      });
      //退出
      $("#logout").click(function() {
        $("#userloging").show();
        $.ajax({
          type: "POST", //訪問WebService使用Post方式請求
          contentType: "application/json;utf-8", //WebService 會返回Json類型
          url: "/API/Service/UserValidate.asmx/UserLogout", //調(diào)用WebService
          data: "{}", //Email參數(shù)
          dataType: 'json',
          beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); },
          success: function(result) { //回調(diào)函數(shù),result,返回值
            $("#userloging").hide();
            if (result.d > 0) {
              $("#userloginsucced").hide();
              $("#userloginbox").show();
            }
          }
        });

      }); //登錄框處理結(jié)束

    });
    </script>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論