JQuery AJAX请求aspx后台方法

利用JQuery封装好的AJAX来请求aspx的后台方法,还是比较方便的,但是要注意以下几点:

1、首先要在方法的顶部加上[WenMethod]的特性(此特性要引入using System.Web.Services;命名空间)

2、其次方法一定要是静态(static)方法。

下面我做了几个不同的调用后台方法的例子:

1、不带参数返回string方法

前台代码:

1  //不带参数返回string方法
2             $.ajax({
3                 type: "post",
4                 url: "后台返回json数组.aspx/hello",
5                 contentType:"Application/json;charset=utf-8",
6                 success: function (msg) {
7                     alert(msg.d);
8                 }
9             })

后台代码:

1  /// <summary>
2     /// 不带参数返回字符串方法
3     /// </summary>
4     /// <returns></returns>
5     [WebMethod]
6     public static  string hello()
7     {
8         return "hello world!";
9     }

2、带参数返回string方法

前台代码:

 1 //带参数返回string方法
 2             $.ajax({
 3                 type: "post",
 4                 url: "后台返回json数组.aspx/sayHi",
 5                 data: "{\"name\":\"小明\",\"age\":\"18\"}",
 6                 contentType: "Application/json;charset=utf-8",
 7                 success: function (msg) {
 8                     alert(msg.d);
 9                 }
10             })

后台代码:

 1 /// <summary>
 2     /// 带参数返回string方法
 3     /// </summary>
 4     /// <param name="name"></param>
 5     /// <param name="age"></param>
 6     /// <returns></returns>
 7     [WebMethod]
 8     public static string sayHi(string name ,int age)
 9     {
10         return string.Format("大家好,我叫{0},我今年{1}岁了!",name,age);
11     }

3、后台返回LIST集合

前台代码:

 1  //后台返回LIST集合
 2             $.ajax({
 3                 type: "post",
 4                 url: "后台返回json数组.aspx/jiazai",
 5                 data: "{\"name\":\"小明\"}",
 6                 contentType: "Application/json; charset=utf-8",
 7                 //dataType:"json",
 8                 success: function (msg) {
 9                     $(msg.d).each(function () {
10                         alert(this);
11                     })
12                 }
13             })

后台代码:

 1 /// <summary>
 2     /// 带参数返回集合方法
 3     /// </summary>
 4     /// <param name="name"></param>
 5     /// <returns></returns>
 6     [WebMethod]
 7     public static List<string> jiazai(string name)
 8     {
 9         List<string> ls = new List<string>();
10         ls.Add(name);
11         return ls;
12     }

最后添加一个标准的写法:前台的额

 1 //标准的写法:
 2 $.ajax({
 3      type: "post",
 4      dataType: "json",
 5      contentType: "application/json", //注意:WebMethod()必须加这项,否则客户端数据不会传到服务端
 6      data:{如上所述},//注意:data参数可以是string个int类型
 7      url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
 8      // 可选的 async:false,阻塞的异步就是同步
 9      beforeSend:function(){
10           // do something.
11           // 一般是禁用按钮等防止用户重复提交
12           $("#btnClick").attr({disabled:"disabled"});
13           // 或者是显示loading图片
14      },
15      success: function (data) {
16           alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
17           // 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string json = JSON.parse(data.d);
18           // 有时候需要嵌套调用ajax请求,也是可以的
19      },
20      complete: function(){
21           //do something.
22           $("#btnClick").removeAttr("disabled");
23           // 隐藏loading图片
24      },
25      error: function (data) {
26           alert("error: " + data.d);
27      }
28 });

时间: 2024-11-04 01:04:10

JQuery AJAX请求aspx后台方法的相关文章

jquery.ajax请求aspx和ashx的异同 Jquery Ajax调用aspx页面方法

1.jquery.ajax请求aspx 请求aspx的静态方法要注意一下问题: (1)aspx的后台方法必须静态,而且添加webmethod特性 (2)在ajax方法中contentType必须是"application/json", (3)data传递的数据必须是严格的json数据,如"{'a':'aa','b':'bb'}",而且参数必须和静态方法的参数一 一对应 (4)aspx的后台方法返回的数据默认形式是"{'d':'返回的内容'}",所

Jquery Ajax调用aspx页面方法

原文:Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理: 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理: 3)文艺玩法:通过WCF进行处理. 第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法. 说明 在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.

asp.net Ajax调用Aspx后台方法

Ajax调用的前提(以aspx文件为例:) 1.首先需要在aspx文件后台中引用using System.Web.Services; 2.需要调用的方法必须是公共的(public).静态的(static):如果不是会提示"500 Internal Server Error 问题",代表找不到method. 3.方法定义需要加入[WebMethod]的声明 4.一般建议由返回类型,最起码可能知道调用成功不成功. 下面是简单的调用示例: 后台方法 [WebMethod] public st

jQuery Ajax请求提交 后台getParameter接收不到数据

今天遇到的问题,总结一下 jQuery的$ajax({ contentType:"application/json",  //发送信息至服务器时内容编码类型. }) 这样的方式提交时,如果指定contentType为application/json:此时后台通过传统的getParameter("属性名")不能够获取前端传过来的数据, 此时需要 使用 http://blog.csdn.net/mhmyqn/article/details/25561535 这里的方法去

ajax请求aspx页面

首先,这么用是不好的.最好用ashx,但也难免遇到这种需求.开发过这么一个系统,每天访问量最多100,web服务器压力很小,完全大马拉小车,主要压力都在数据库服务器上,要做大量的统计.所以页面直接全上服务器控件搞定.用到ajax的时候也懒得在写个ashx了,直接aspx里写了.下面是例子: 前端: 1 function AjaxRquest() { 2 $.ajax({ 3 url: location.href, 4 type: "POST", 5 data: { "Requ

jQuery ajax同步的替换方法,使用 $.Deferred()对象

function aa() { var defer = $.Deferred(); $.ajax({ url: "/Handler1.ashx", type: "post", success: function (data) { defer.resolve(data);//这里的data数据会传到$.when(aa()).done(function(data) data里面 } }); return defer.promise(); } $(function ()

jQuery Ajax 请求报长度过长的错误:Error during serialization or deserialization using the JSON JavaScriptSerializer

{"Message":"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set 在web项目的web.config <configuration>节下增加 <system.web.extensions>    <scripting>    

jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示

1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实现 初次使用$.ajax() ,我没有去区分过ajax的异步请求和同步请求的不同,刚开始使用同步请求,以至后来出现许多问题,特别在体验度方面.异步和同步:同步意味着执行完一段程序才能执行下一段,它属于阻塞模式,其表现在网页上的现象是——浏览器会锁定页面(即所谓的页面假死状态),用户不能操作其它的,必

jquery ajax清除缓存的方法

function cityListChange(cityCode){ //{lon=121.491121, name=上海, province=上海市, telPrefix=021, provinceid=310000, code=310100, lat=31.243466, platePrefix=沪} $.ajax({ type: "get", dataType: "json", url: "${contextPath}/carUpload/cityL