ajax获取webservice,Jquery ajax调用webservice总结

jquery ajax调用webservice(C#)要注意的几个事项:

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

type="System.Web.Script.Services.ScriptHandlerFactory,

System.Web.Extensions, Version=1.0.61025.0, Culture=neutral,

PublicKeyToken=31bf3856ad364e35"/>

在之间加入

2.正确地编写webserivce的代码

///

/// UserValidate 的摘要说明

///

[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})(]?)$");

}

}

3、前台JQuery代码

$(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();

}

}

});

});//登录框处理结束

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值