zoukankan      html  css  js  c++  java
  • asp.net Ajax Post 请求一般处理程序

           其实很早就开通博客园了,一直想写些有价值的东西,供自己以后查阅的同时,也可以帮助别人遇到此类问题时能有一个好的解决方法.但是由于各种原因,

    就没有实施我的想法。今天突然很想写下一篇文章,不知道我的第一篇文章应该写些什么,那我就写一个最近做的一个小程序的一个知识点吧。

           今天主要写ajax post提交到一般处理程序,一般处理程序接收到数据如何解析和处理的。其实在网上也看到了一些例子,但是总是会有这样那样的问题。所以

    我把代码贴出来,希望能帮助到大家。

    先将js代码贴出来

     1  <script type="text/javascript">
     2         function submit() {
     3             var form = document.getElementById("form1");
     4             var obj = {
     5                 CompanyName: form.CompanyName.value,
     6                 Customer: form.Customer.value,
     7                 MobilePhone: form.MobilePhone.value
     8             }
     9             if (obj.Customer.length < 2) {
    10                 alert("请输入姓名,不少于2个字符");
    11                 return;
    12             }
    13             if (obj.MobilePhone.length == 0) {
    14                 alert("请输入正确的手机号");
    15                 return;
    16             }
    17             //var json = { "RealName": obj.RealName, "phone": obj.phone, "CardID": obj.CID, "Unit": obj.Unit };
    18             $.ajax({
    19                 url: "../Register.ashx?type=3",
    20                 type: "POST",
    21                 data: JSON.stringify(obj),//将对象转换成字符串传递到后台进行处理
    22                 success: function (res) {
    23                     loading(false);
    24                     if (res == "注册成功") {
    25                         alert(res);
    26                     } else {
    27                         alert(res);
    28                     }
    29                 },
    30                 error: function () {
    31                     loading(false);
    32                 }
    33             });
    34 
    35         }
    36     </script>

     后台代码如下:

      public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "application/json; charset=utf-8";
                string type=  context.Request.QueryString["type"];
                byte[] byts = new byte[context.Request.InputStream.Length];
                context.Request.InputStream.Read(byts, 0, byts.Length);
                string strfiled = System.Text.Encoding.UTF8.GetString(byts);
                strfiled = context.Server.UrlDecode(strfiled);
                User result = (User)JsonConvert.DeserializeObject(strfiled, typeof(user));
    Json json = new Json(); context.Response.Write(
    "OK");
    }

    其中string type= context.Request.QueryString["type"]; 这一行代码是获取url中的参数type值得

     byte[] byts = new byte[context.Request.InputStream.Length];
     context.Request.InputStream.Read(byts, 0, byts.Length);
     string strfiled = System.Text.Encoding.UTF8.GetString(byts);
     strfiled = context.Server.UrlDecode(strfiled);
    以上几行代码主要是获取ajax请求中的data参数的数据。

    User result = (User)JsonConvert.DeserializeObject(strfiled, typeof(user));
    这一行代码主要是将获取到的数据转换成相应的对象User实体类。 其中JsonConvert这个类是需要引用Newtonsoft.Json.dll类库才可以使用。

    注意:context.Response.Write(),如果返回的是对象,那么请将对象转换成字符串返回,并且ajax dataType设置成"text" 这样才能正确返回数据。
    到这里就讲完了,这里只是简单的讲一下ajax post请求一般处理程序,一般处理程序是如何接收请求的数据的,很简单的一个例子,我从来都没有写过博客,可能写的不好,希望大家多多包涵,
    也希望大家能为我提提意见,也希望我以后能写出更多有意义也很实用的文章。
     
  • 相关阅读:
    理解SynchronizationContext,如何在Winform里面跨线程访问UI控件
    ThreadPool.QueueUserWorkItem引发的血案,线程池异步非正确姿势导致程序闪退的问题
    实战经验分享之C#对象XML序列化
    C#wxpay和alipay
    C#调用windows api 实现打印机控制
    C#winform程序关闭计算机的正确姿势
    自动化控制之线程池的使用
    自动化控制之重码校验
    (转)C#中的那些全局异常捕获
    android studio 2.32躺坑记
  • 原文地址:https://www.cnblogs.com/liuchunhe/p/4350759.html
Copyright © 2011-2022 走看看