jQuery ajax调用webservice注意事项

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

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

rush:xml;"> stem.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"/>

之间加入

rush:xml;">

2.正确地编写webserivce的代码

rush:csharp;"> /// /// 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.<a href="https://www.jb51.cc/tag/dis/" target="_blank" class="keywords">dis</a>cuzNT.Pa<a href="https://www.jb51.cc/tag/ssp/" target="_blank" class="keywords">ssp</a>ortLogin.UserLogin(Server.UrlDecode(userName),-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) + "','gpoint':'" + gpoint.ToString() + "'}}";
    }
    else
    {
      int ids = 0;//状态:-2<a href="https://www.jb51.cc/tag/yonghu/" target="_blank" class="keywords">用户</a>被锁定 -1<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>密码<a href="https://www.jb51.cc/tag/cuowu/" target="_blank" class="keywords">错误</a>
      switch (state)
      {
        case EnumLoginState.Err_Locked:
          ids = -2;
          break;
        case EnumLoginState.Err_UserNameOrPwdError:
          ids = -1;
          break;
        default:
          break;
      }
      returnVal = "{'user':{'id':'" + ids + "','gpoint':'0'}}";
    }
  }
  catch
  {
    returnVal = "{'user':{'id':'0','gpoint':'0'}}";
  }
  return returnVal;
}
[WebMethod]
public string User<a href="https://www.jb51.cc/tag/logo/" target="_blank" class="keywords">logo</a>ut()
{
  if (HttpContext.Current.Request.Cookies["DHFonMenberInfo"] != null)
  {
    HttpCookie cookie = new HttpCookie("DHFonMenberInfo");
    cookie.Expires = Sy<a href="https://www.jb51.cc/tag/stem/" target="_blank" class="keywords">stem</a>.DateTime.<a href="https://www.jb51.cc/tag/Now/" target="_blank" class="keywords">Now</a>.AddDays(-1);
    cookie.Domain = DFHon.Con<a href="https://www.jb51.cc/tag/fig/" target="_blank" class="keywords">fig</a>.BaseCon<a href="https://www.jb51.cc/tag/fig/" target="_blank" class="keywords">fig</a>.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";//可以<a href="https://www.jb51.cc/tag/zhuce/" target="_blank" class="keywords">注册</a>
  }
  return result;
}

[WebMethod]
public string ValidateUserName(string username)
{
  string result = "0";//返回值:-1<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>长度为2-16;0<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>存在;1可以<a href="https://www.jb51.cc/tag/zhuce/" target="_blank" class="keywords">注册</a>
  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 Sy<a href="https://www.jb51.cc/tag/stem/" target="_blank" class="keywords">stem</a>.Text.RegularExpressions.Regex.IsMatch(strIn,@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}

}

WebService

rush:js;">