直接贴代码!我也测试通过! 一切看注释! 谢谢!

  1. <%@ WebHandler Language="C#" class="Handler" %>
  2.  
  3. using System;
  4. using System.Web;
  5. using System.Text;
  6.  
  7. public class Handler : IHttpHandler {
  8.  
  9. public void ProcessRequest (HttpContext context) {
  10. context.Response.ContentType = "text/plain";
  11. string id = "0";
  12. //判断提交方式
  13. if (context.Request.RequestType.ToLower() == "get")
  14. {
  15. id = context.Request.QueryString["id"];
  16. }
  17. else
  18. {
  19. id = context.Request.Form["id"];
  20. }
  21.  
  22. string name = @"jinho's good \"" you";
  23. /**
  24. * 今天暂时用手动创建个json字符串类型,其实.net中有
  25. * System.Runtime.Serialization.Json.DataContractJsonSerializer这个类来把
  26. * 实体对象转换为json字符串! 改天再用那种方式写个吧!
  27. * 自己也学习学习[更多关于json介绍!google一下多了是]
  28. * */
  29. StringBuilder sb = new StringBuilder("{");
  30. sb.Append("id:"+id);
  31. /*
  32. * 注意但属性值为字符串的时候需要有'号或者"号['字符串']
  33. * 当 参数 name 又含 有单引号或者双引号 就会出错了![截断了字符串]
  34. * 在这里sb.Append(",name:'escape(" + name + ")'"); 用js的escape也不行
  35. * context.Server.HtmlEncode();,context.Server.UrlEncode();也不行
  36. * 可以看看这里
  37. * escape("'") = %27 可以在js用 unescape("'") 就还原了
  38. * escape(""") = %22 嘿嘿,用这个方法也是我的无奈之举!
  39. * 谁有好的方法记得告诉我哦! 先谢谢了!
  40. * 问题已解决:http://www.cnblogs.com/jinho/archive/2010/05/07/1729586.html
  41. * */
  42. sb.Append(",name:'" + name.Replace("'", "%27").Replace("\"", "%22") + "'");
  43. sb.Append(",age:22");
  44. sb.Append("}");
  45. //输出 json 字符串
  46. context.Response.Write(sb.ToString());
  47. context.Response.End();
  48. }
  49.  
  50. public bool IsReusable {
  51. get {
  52. return false;
  53. }
  54. }
  55.  
  56. }
  1. <%@ Page Language="C#" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <script runat="server">
  6.  
  7. </script>
  8.  
  9. <html xmlns="http://www.w3.org/1999/xhtml">
  10. <head runat="server">
  11. <title>前台</title>
  12. </head>
  13. <body>
  14. <form id="form1" runat="server">
  15. <asp:scriptmanager runat="server" ID="sm" />
  16. <script type="text/javascript">
  17. function ajaxFunction() {
  18. var xmlHttp;
  19. try {
  20. // Firefox, Opera 8.0+, Safari
  21. xmlHttp = new XMLHttpRequest();
  22. }
  23. catch (e) {
  24.  
  25. // Internet Explorer
  26. try {
  27. xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
  28. }
  29. catch (e) {
  30.  
  31. try {
  32. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  33. }
  34. catch (e) {
  35. alert("您的浏览器不支持AJAX!");
  36. return false;
  37. }
  38. }
  39. }
  40. return xmlHttp;
  41. }
  42. </script>
  43. <script type="text/javascript">
  44. var xmlhttp = null;
  45. function loadJsonData() {
  46. xmlhttp = ajaxFunction();
  47. if (xmlhttp != null) {
  48. xmlhttp.onreadystatechange = state_Change;
  49. var data = "id=231";
  50. //把这两句注释,看看下面的POST提交方式
  51. xmlhttp.open("GET", "Handler.ashx?" + data, true);
  52. xmlhttp.send(null);
  53. /*
  54. xmlhttp.open("POST", "Handler.ashx", true);
  55. //如果使用POST提交 不设置这条语句,url页面 Request.Form["key"] 是取不到值的!
  56. //这句我也不知道为什么要设置,网上找到的![GET提交可以不设置,但需要把参数拼接到URL]
  57. xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  58. xmlhttp.send(data); //如果是post提交,需要把数据发送过去
  59. */
  60. }
  61. else {
  62. alert("Your browser does not support XMLHTTP.");
  63. }
  64. }
  65. function state_Change() {
  66. if (xmlhttp.readyState == 4) {// 4 = "loaded"
  67. if (xmlhttp.status == 200) {// 200 = "OK"
  68. eval("var s = " + xmlhttp.responseText);
  69. $get("divDisplay").innerHTML = "ID" + s.id + "Name:" + unescape(s.name) + "Age:" + s.age;
  70. }
  71. else {
  72. alert("Error:" + xmlhttp.statusText);
  73. }
  74. }
  75. }
  76. </script>
  77.  
  78. <div>
  79. <input type="button" value="GetJson" onclick="loadJsonData();" />
  80. <div id="divDisplay"></div>
  81. </div>
  82. </form>
  83. </body>
  84. </html>

AJAX提交到Handler.ashx一般处理程序返回json数据-转的更多相关文章

  1. AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)

    <%@ WebHandler Language="C#" Class="Handler" %> using System; using System ...

  2. 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据

    1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.W ...

  3. 用jQuery的ajax请求一般处理程序返回json数据

    1.web页面代码: 注意事项: dataType类型一定要写成json. 2.一般处理程序代码: 注意事项: ContentType类型写成"application/json"或 ...

  4. ashx将datatable返回json数据

    1.直接使用JsonConvert.SerializeObject().将datatable放入  输出字符串 下面是测试:用webform+ashx作为接口. public class GetJso ...

  5. ashx文件结合ajax使用(返回json数据)

    ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...

  6. jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  7. 用ajax获取后台数据,返回json数据,怎么在前台使用?

    用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...

  8. jquery的ajax异步请求接收返回json数据

    http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...

  9. jquery ajax返回json数据进行前后台交互实例

    jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...

随机推荐

  1. RabbitMQ的工作模式

    简单模式: # #########################基于简单模式的 生产者 ######################### #!/usr/bin/env python import ...

  2. android IPC通信(上)-sharedUserId&amp;&amp;Messenger

    看了一本书,上面有一章解说了IPC(Inter-Process Communication,进程间通信)通信.决定结合曾经的一篇博客android 两个应用之间的通信与调用和自己的理解来好好整理总结一 ...

  3. caffe学习--Lenet5的应用和原理、实现----ubuntu16.04.2+caffe+mnist+train+test

    Lenet5的应用和原理.实现 ----------------------------------------------ubuntu16.04.2------------------------- ...

  4. 理解DOMSTRING、DOCUMENT、FORMDATA、BLOB、FILE、ARRAYBUFFER数据类型

    一.XMLHttpRequest 2.0的家臣们 我大学那会儿,一个称为Ajax的东西对前端行业造成了深远影响,不仅是JS语言,而包括前端地位.职位兴起以及工作分工等.抛开IE6浏览器不谈,其他浏览器 ...

  5. 多线程(C++)临界区Critical Sections

    一 .Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度比Mutex快,但是没有等待超时的功能,所以有可能导致死锁,使用 ...

  6. 用Cocoapods集成XMPPFramework 遇 Module 'KissXML' not found 问题

    用Coacopods集成XMPPFramework完成后Command + B,报Module 'KissXML' not found 一般来说,通过Coacopods集成集成第三方框架,不会再有依赖 ...

  7. redis的主从复制和哨兵支持的主从切换

    1 主从复制的目的是为了读写分离 master写,然后同步到slave,slave只管读. 2 哨兵存在的目的 是为了主从切换,如果master挂了,那么一个slave成为master,重启之后的ma ...

  8. kernel.panic

    sysctl -a kernel.panic = 0kernel.panic_on_io_nmi = 0kernel.panic_on_oops = 1kernel.panic_on_stackove ...

  9. 推荐一个非常好的 IntelliJ IDEA 教程

    教程地址:https://github.com/judasn/IntelliJ-IDEA-Tutorial 作者博客:http://www.youmeek.com/category/software- ...

  10. mac 中安装redis 以及 安装php-redis扩展过程详细记录

    1. 通过homebrew 安装 redis sodu brew install redis 2. 安装后执行开启redis,采用默认配置, 默认配置只有本地(127.0.0.1)可以访问.需要远程访 ...