欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  1.jquery.ajax请求aspx
 
  请求aspx的静态方法要注意一下问题:
 
  (1)aspx的后台方法必须静态,而且添加webmethod特性
 
  (2)在ajax方法中contentType必须是“application/json”,
 
  (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应
 
  (4)aspx的后台方法返回的数据默认形式是“{'d':'返回的内容'}”,所以如果dataType指定为"json"必须通过data.d来获取返回数据
 
  在webfrom页面中后台定义请求方法(方法必须静态,而且必须添加WebMethod特性)
 
  [WebMethod]
 
  public static string GetString(string str_a,string str_b)
 
  {
 
  return str_a+str_b;
 
  }
 
  前台页面请求
 
  $(function(){
 
  $.jax({
 
  url:'default.aspx/GetString',
 
  type:'post',
 
  contentType:'application/json',//这里必须指明要传递到服务器的内容的编码方式,而且必须是json,否则后台方法获取不到传递数据。
 
  dataType:'json',//客户端以json的方式去读取返回数据
 
  data:'{'str_a':'aaa','str_b':'bbbb'}',//参数必须和后台的参数名称一样 data必须传递json格式的数据
 
  success:function(result){
 
  alert(result.d);//因为webmethod的方法默认返回的数据格式是json的格式而且数据格式如:"{'d':'返回的数据'}",所以要通过.d来获取返回的内容。
 
  }
 
  });
 
  });
 
  2.请求ashx
 
  注意问题:
 
  (1)ajax方法中的contentType如果指定必须指定为“application/x-否则在ashx中request.form获取不到数据
 
  (2)如果dataType为json,想要jQuery自动解析json数据,ashx必须返回严格的json数据,而且必须是双引号(用反义字符去反义)的格式,如:?context.Response.Write("{\"d\":\"Hello World\"}"),否则jquery会解析json失败。
 
  (3)如果因为contentType未设置或者不是“application/x-类型,reque.form获取不到数据,可以通过context.Request.InputStream来获取请求内容。
 
  (4)在请求ashx中data参数有这几种形式: data:{'a':'aa','b':'bb'}, data:"a=aa&b=bb",data:{a:'aa',b:'bb'},这三种数据都可以通过request.form[""]来获取到。
 
  在asp.net webform开发中,用jQuery ajax传值一般有几种玩法
 
  1)普通玩法:通过一般处理程序ashx进行处理;
 
  2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理;
 
  3)文艺玩法:通过WCF进行处理。
 
  第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法。
 
  说明
 
  在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.config中已经添加了System.Web.Handlers.ScriptModule,它是用于管理asp.net中ajax功能的HTTP模块,这样不管用户是请求.asmx文件还是.aspx文件,都会通过此处理程序来处理请求。

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h62675.shtml