实例详解jQuery ajax调用webservice注意事项
本文主要为大家详细介绍了jQuery ajax调用webservice的注意事项,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。
jquery ajax调用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>
在
<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 从脚本中调用此 Web 服务,请取消对下行的注释。 [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;//状态:-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";//返回的结果 -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(); //登录框处理开始 //加载登录状态 $.ajax({ type: "POST", //访问WebService使用Post方式请求 contentType: "application/json;charset=utf-8", //WebService 会返回Json类型 url: "/API/Service/UserValidate.asmx/ValidateUserLogState", //调用WebService data: "{}", //Email参数 dataType: 'json', beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); }, error: function(x, e) { }, success: function(response) { //回调函数,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", //调用WebService data: "{userName:'" + username + "',userPwd:'" + userpwd + "'}", //Email参数 dataType: 'json', beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); }, error: function(x, e) { }, success: function(result) { //回调函数,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", //调用WebService data: "{}", //Email参数 dataType: 'json', beforeSend: function(x) { x.setRequestHeader("Content-Type", "application/json; charset=utf-8"); }, success: function(result) { //回调函数,result,返回值 $("#userloging").hide(); if (result.d > 0) { $("#userloginsucced").hide(); $("#userloginbox").show(); } } }); }); //登录框处理结束 }); </script>
相关推荐:
以上是实例详解jQuery ajax调用webservice注意事项的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

使用PHP和Ajax构建自动完成建议引擎:服务器端脚本:处理Ajax请求并返回建议(autocomplete.php)。客户端脚本:发送Ajax请求并显示建议(autocomplete.js)。实战案例:在HTML页面中包含脚本并指定search-input元素标识符。

使用Ajax从PHP方法中获取变量是Web开发中常见的场景,通过Ajax可以实现页面无需刷新即可动态获取数据。在本文中,将介绍如何使用Ajax从PHP方法中获取变量,并提供具体的代码示例。首先,我们需要编写一个PHP文件来处理Ajax请求,并返回所需的变量。下面是一个简单的PHP文件getData.php的示例代码:

Cockpit是一个面向Linux服务器的基于Web的图形界面。它主要是为了使新用户/专家用户更容易管理Linux服务器。在本文中,我们将讨论Cockpit访问模式以及如何从CockpitWebUI切换Cockpit的管理访问。内容主题:驾驶舱进入模式查找当前驾驶舱访问模式从CockpitWebUI启用Cockpit的管理访问从CockpitWebUI禁用Cockpit的管理访问结论驾驶舱进入模式驾驶舱有两种访问模式:受限访问:这是驾驶舱的默认访问模式。在这种访问模式下,您不能从驾驶舱Web用户

标题:jQuery小技巧:快速修改页面所有a标签的文本在网页开发中,我们经常需要对页面中的元素进行修改和操作。在使用jQuery时,有时候需要一次性修改页面中所有a标签的文本内容,这样可以节省时间和精力。下面将介绍如何使用jQuery快速修改页面所有a标签的文本,同时给出具体的代码示例。首先,我们需要引入jQuery库文件,确保在页面中引入了以下代码:<

标题:使用jQuery修改所有a标签的文本内容jQuery是一款流行的JavaScript库,被广泛用于处理DOM操作。在网页开发中,经常会遇到需要修改页面上链接标签(a标签)的文本内容的需求。本文将介绍如何使用jQuery来实现这个目标,并提供具体的代码示例。首先,我们需要在页面中引入jQuery库。在HTML文件中添加以下代码:

PHP在Web开发中是属于后端。PHP是一种服务器端脚本语言,主要用于处理服务器端的逻辑,生成动态网页内容。与前端技术相比,PHP更多地用于与数据库交互、处理用户请求以及生成页面内容等后端操作。接下来通过具体的代码示例来说明PHP在后端开发中的应用。首先,我们来看一个简单的PHP代码示例,用于连接数据库并查询数据:

Ajax(异步JavaScript和XML)允许在不重新加载页面情况下添加动态内容。使用PHP和Ajax,您可以动态加载产品列表:HTML创建一个带有容器元素的页面,Ajax请求加载数据后将数据添加到该元素中。JavaScript使用Ajax通过XMLHttpRequest向服务器发送请求,从服务器获取JSON格式的产品数据。PHP使用MySQL从数据库查询产品数据,并将其编码为JSON格式。JavaScript解析JSON数据,并将其显示在页面容器中。点击按钮触发Ajax请求,加载产品列表。

如何判断jQuery元素是否具有特定属性?在使用jQuery操作DOM元素时,经常会遇到需要判断元素是否具有某个特定属性的情况。这种情况下,我们可以借助jQuery提供的方法来轻松实现这一功能。下面将介绍两种常用的方法来判断一个jQuery元素是否具有特定属性,并附上具体的代码示例。方法一:使用attr()方法和typeof操作符//判断元素是否具有特定属
