zoukankan      html  css  js  c++  java
  • 用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

     

  • 相关阅读:
    辞职信(转贴)
    去掉控件上显示聚焦框
    静态构造函数
    用Excel 公式求 金额的差额
    2020/2/6学习总结
    2020/2/3学习总结
    2020/2/7学习总结
    2020/1/31学习总结
    2020/2/5学习总结
    2020/2/4学习总结
  • 原文地址:https://www.cnblogs.com/huangenai/p/5223259.html
Copyright © 2011-2022 走看看