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

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

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

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

先将js代码贴出来

  <script type="text/javascript">
function submit() {
var form = document.getElementById("form1");
var obj = {
CompanyName: form.CompanyName.value,
Customer: form.Customer.value,
MobilePhone: form.MobilePhone.value
}
if (obj.Customer.length < ) {
alert("请输入姓名,不少于2个字符");
return;
}
if (obj.MobilePhone.length == ) {
alert("请输入正确的手机号");
return;
}
//var json = { "RealName": obj.RealName, "phone": obj.phone, "CardID": obj.CID, "Unit": obj.Unit };
$.ajax({
url: "../Register.ashx?type=3",
type: "POST",
data: JSON.stringify(obj),//将对象转换成字符串传递到后台进行处理
success: function (res) {
loading(false);
if (res == "注册成功") {
alert(res);
} else {
alert(res);
}
},
error: function () {
loading(false);
}
}); }
</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, , 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请求一般处理程序,一般处理程序是如何接收请求的数据的,很简单的一个例子,我从来都没有写过博客,可能写的不好,希望大家多多包涵,
也希望大家能为我提提意见,也希望我以后能写出更多有意义也很实用的文章。
 

asp.net Ajax Post 请求一般处理程序的更多相关文章

  1. 在ASP.NET开始执行HTTP请求的处理程序之前

    using Dscf.Client.Web.Class; using Dscf.Client.Web.DscfService; using Dscf.Client.Web.Handler; using ...

  2. iis 7 asp.net ajax post 请求字节过大报错问题解决办法

    遇到一个ajax post 提交新闻资讯类的文章,报 {"Message":"There was an error processing the request.&quo ...

  3. http请求在asp.net中的请求过程

    当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会 ...

  4. ASP.NET 跨域请求之jQuery的ajax jsonp的使用解惑 (转载)

    前天在项目中写的一个ajax jsonp的使用,出现了问题:可以成功获得请求结果,但没有执行success方法,直接执行了error方法提示错误——ajax jsonp之前并没有用过,对其的理解为跟普 ...

  5. asp.net——Ajax与ashx异步请求的简单案例

    Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ...

  6. ASP.NET运行机制之一般处理程序(ashx)

    一. 概述 新建一个ashx文件  代码如下 <%@ WebHandler Language="C#" Class="TestHandler" %> ...

  7. asp.net ajax检查用户名是否存在代码

    原文  asp.net ajax检查用户名是否存在代码 用户注册时,我们经常需要检查用户名是否存在,本文就是实现无刷新验证用户名 打开开发环境VS 2005,新建项目(或打开现有项目),新建一个Web ...

  8. ASP.NET AJAX简明教程

     当我们谈论Ajax时,首先想到的就是JavaScript下的Ajax,用来完成网页的交互,局部刷新工作,Microsoft的ASP.NET AJAX框架在Web的开发中承担着类似的角色,并简化了Ja ...

  9. ASP.NET AJAX应用

    ASP.NET AJAX能够快速地创建具有丰富的用户体验的页面,而且这些页面由可靠和熟悉的用户接口元素组成,包括一个能快速响应的用户体验和熟悉的用户元素. 使用ASP.NET  AJAX,可以改善We ...

随机推荐

  1. WCF 第五章 会话级别的实例

    会话在分布式应用程序中广泛用于维护每个用户的状态.在站点或者基于站点的应用中,将每个用户的状态存储于会话中很常见.这这些情况中,用户和会话间有一个1:1比例.WCF以一个类似的概念支持服务.使用Ins ...

  2. [转]用C#实现的条形码和二维码编码解码器

    条形码的标准: 条形码的标准有ENA条形码.UPC条形码.二五条形码.交叉二五条形码.库德巴条形码.三九条形码和128条形码等,而商品上最常使用的就是EAN商品条形码.EAN商品条形码亦称通用商品条形 ...

  3. ubuntu 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)

    在用sudo apt-get install kmymoney2安装软件kmymoney2时,由于速度太慢,想换个软件源,直接关闭了终端,apt-get但进程没有结束,结果终端提示:"E: ...

  4. 独立线程中实现QT GUI

    在网上搜集的资料: http://www.qtcentre.org/threads/16552-Starting-QT-GUI-in-a-seperate-Threadhttp://stackover ...

  5. 关于 Unity UI 中 GraphicRaycaster.Raycast 数量巨大的问题

    有时候会发现 Unity UI 非常耗时,在 Profiler 中可以轻易的看到 UI 中 的 GraphicRaycaster.Raycast 单帧调用可以成百上千,甚至好几千,帧速率前不忍赌,一关 ...

  6. 【CSS3】Advanced10:Gradient

    1.background:linear-gradient(20deg/(to) bottom right,orange,red,hsl(60,100%,50%)); 2.-webkit-chrome/ ...

  7. linux 内存管理——内核的shmall 和shmmax 参数

    内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...

  8. HW3.20

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  9. IE-二级网页打不开

    无法打开二级链接的处理方法是重新注册如下的DLL文件: 在开始—运行里输入: regsvr32 Shdocvw.dll regsvr32 Shell32.dll(注意这个命令,先不用输) regsvr ...

  10. jQuery无缝间歇向上滚动

    http://www.jiangweishan.com/article/jQuery-scroll-up.html