您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(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ò),可以把它分享出去讓更多的人看到吧!
免責(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)容。