溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jQuery中ajax調(diào)用webservice注意事項(xiàng)有哪些

發(fā)布時(shí)間:2021-08-12 11:42:00 來(lái)源:億速云 閱讀:125 作者:小新 欄目:web開(kāi)發(fā)

這篇文章給大家分享的是有關(guān)jQuery中ajax調(diào)用webservice注意事項(xiàng)有哪些的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

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

1、web.config里需要配置2個(gè)地方

<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 的摘要說(shuō)明
  /// </summary>
  [WebService(Namespace = "http://tempuri.org/")]
  [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  [System.ComponentModel.ToolboxItem(false)]
  // 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請(qǐng)取消對(duì)下行的注釋。
   [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用戶名密碼錯(cuò)誤
          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";//可以注冊(cè)
      }
      return result;
    }

    [WebMethod]
    public string ValidateUserName(string username)
    {
      string result = "0";//返回值:-1用戶名長(zhǎng)度為2-16;0用戶名存在;1可以注冊(cè)
      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();
      //登錄框處理開(kāi)始
      //加載登錄狀態(tài)
      $.ajax({
        type: "POST", //訪問(wèn)WebService使用Post方式請(qǐng)求
        contentType: "application/json;charset=utf-8", //WebService 會(huì)返回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", //訪問(wèn)WebService使用Post方式請(qǐng)求
            contentType: "application/json;charset=utf-8", //WebService 會(huì)返回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("用戶被鎖定!請(qǐng)30分鐘后再登錄!");
                    $("#username").focus();
                    break;
                  case -1:
                    alert("用戶名或密碼錯(cuò)誤!請(qǐng)核對(duì)您的用戶名和密碼!");
                    $("#userpassword").focus();
                    break;
                  default:
                    alert("登錄失??!請(qǐng)核對(duì)您的用戶名和密碼之后重試!");
                    $("#userpassword").focus();
                    break;
                }
              }
            }
          });
        }
        else if (username == "") {
          alert("用戶名不能為空!");
          $("#username").focus();
        }
        else if (userpwd == "") {
          alert("密碼不能為空!");
          $("#userpassword").focus();
        }
      });
      //退出
      $("#logout").click(function() {
        $("#userloging").show();
        $.ajax({
          type: "POST", //訪問(wèn)WebService使用Post方式請(qǐng)求
          contentType: "application/json;utf-8", //WebService 會(huì)返回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>

感謝各位的閱讀!關(guān)于“jQuery中ajax調(diào)用webservice注意事項(xiàng)有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI