用JQuery Ajax 与一般处理程序 请求数据无刷新,以及如何调试错误

通过 ajax() 与 一般处理程序,请求数据库数据,实现界面无刷新。

Jquery ajax 请求参数详细说明 http://www.w3school.com.cn/jquery/ajax_ajax.asp 

 

代码:

 1 <!DOCTYPE html>
 2 
 3 <html xmlns="http://www.w3.org/1999/xhtml">
 4 <head runat="server">
 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 6     <title></title>
 7     <script src="jquery-1.3.2-vsdoc2.js"></script>
 8 </head>
 9 <body>
10     <form id="form1" runat="server">
11     <div style="margin: 50px;">
12     <input value="点击" type="button" id="btn"/>
13     </div>
14     </form>
15 <script type="text/javascript">
16     $(document).ready(function () {
17         $('#btn').click(function () {
18             $.ajax({
19                 url: 'ashx/Handler1.ashx',//string类型的参数,发送请求的地址
20                 type: 'POST',//请求方式(post or get)默认为get
21                 contenType: "application/json;charset-utf-8",//发送信息至服务器时内容编码类型
22                 dataType: 'text',//预期服务器返回的数据类型
23                 data: {},//发送的请求数据
24                 success: function (data) {
25                     alert(data);
26                 }
27             });
28         });
29     })
30 </script>
31 </body>
32 </html>
 1 using System.Web;
 2 
 3 namespace DemoAjxa.ashx
 4 {
 5     /// <summary>
 6     /// Handler1 的摘要说明
 7     /// </summary>
 8     public class Handler1 : IHttpHandler
 9     {
10 
11         public void ProcessRequest(HttpContext context)
12         {
13             context.Response.ContentType = "text/plain";
14 
15             context.Response.Write("Hello World");
16         }
17 
18         public bool IsReusable
19         {
20             get
21             {
22                 return false;
23             }
24         }
25     }
26 }

效果:

 

上面是post请求,获得纯文本字符串,如果是要获得json 数据的话

则需要将ajax 的参数dataType设为 josn,一般处理程序 context.Response.Write();返回的数据类型也必须是json 格式哦

然后将获得的json 数据解析并绑定到界面上

列: dataType: 'json',//预期服务器返回的数据类型


data{name:'huangenai'}如果data带参数,
在一般处理程序这样可以获得传过来的参数
string name=context.Request["name"].ToString();

关于请求返回为error
1.查看 url 请求地址是否正确

火狐浏览器,安装插件 Firebug,F12可以看到报错了 显示请求地址NotFound

2.data{} 即时不传参数也要这样写上哦,不然会报错的

 

3.返回的数据类型是否与 dataType 一致

如果不一致则会报错

4.检查时否发生了跨域的请求

 

5.编码格式是否正确

 

当然也可以在代码中这样写,将错误输出查看到底是什么错误

 1 <script type="text/javascript">
 2     $(document).ready(function () {
 3         $('#btn').click(function () {
 4             $.ajax({
 5                 url: 'ashx/Handler1.ashx',//string类型的参数,发送请求的地址
 6                 type: 'POST',//请求方式(post or get)默认为get
 7                 contenType: "application/json;charset-utf-8",//发送信息至服务器时内容编码类型
 8                 dataType: 'text',//预期服务器返回的数据类型
 9                 data: {name:'huangenai'},//发送的请求数据
10                 success: function (data) {
11                     alert(data);
12                 }, error: function (XMLHttpRequest) {
13                     alert("Ajax请求失败,错误状态为:"+XMLHttpRequest.status);
14                 }
15             });
16         });
17     })
18 </script>

效果:

 

XMLHttpRequest 对象

属性

readyState:请求状态,开始请求时值为0直到请求完成这个值增长到4(readyState共有5中状态,0未初始化,1已初始化,2发送请求,3开始接收结果,4接收结果完毕。

responseText:目前为止接收到的响应体,readyState<3此属性为空字符串,=3为当前响应体,=4则为完整响应体

responseXML:服务器端相应,解析为xml并作为Document对象返回

status:服务器端返回的状态码,=200成功,=404表示“Not Found”

statusText:用名称表示的服务器端返回状态,对于“OK”为200,“Not Found”为400

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值