AJAX提交到Handler.ashx一般处理程序返回json数据-转
直接贴代码!我也测试通过! 一切看注释! 谢谢!
- <%@ WebHandler Language="C#" class="Handler" %>
- using System;
- using System.Web;
- using System.Text;
- public class Handler : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- context.Response.ContentType = "text/plain";
- string id = "0";
- //判断提交方式
- if (context.Request.RequestType.ToLower() == "get")
- {
- id = context.Request.QueryString["id"];
- }
- else
- {
- id = context.Request.Form["id"];
- }
- string name = @"jinho's good \"" you";
- /**
- * 今天暂时用手动创建个json字符串类型,其实.net中有
- * System.Runtime.Serialization.Json.DataContractJsonSerializer这个类来把
- * 实体对象转换为json字符串! 改天再用那种方式写个吧!
- * 自己也学习学习[更多关于json介绍!google一下多了是]
- * */
- StringBuilder sb = new StringBuilder("{");
- sb.Append("id:"+id);
- /*
- * 注意但属性值为字符串的时候需要有'号或者"号['字符串']
- * 当 参数 name 又含 有单引号或者双引号 就会出错了![截断了字符串]
- * 在这里sb.Append(",name:'escape(" + name + ")'"); 用js的escape也不行
- * context.Server.HtmlEncode();,context.Server.UrlEncode();也不行
- * 可以看看这里
- * escape("'") = %27 可以在js用 unescape("'") 就还原了
- * escape(""") = %22 嘿嘿,用这个方法也是我的无奈之举!
- * 谁有好的方法记得告诉我哦! 先谢谢了!
- * 问题已解决:http://www.cnblogs.com/jinho/archive/2010/05/07/1729586.html
- * */
- sb.Append(",name:'" + name.Replace("'", "%27").Replace("\"", "%22") + "'");
- sb.Append(",age:22");
- sb.Append("}");
- //输出 json 字符串
- context.Response.Write(sb.ToString());
- context.Response.End();
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- }
- <%@ Page Language="C#" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <script runat="server">
- </script>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title>前台</title>
- </head>
- <body>
- <form id="form1" runat="server">
- <asp:scriptmanager runat="server" ID="sm" />
- <script type="text/javascript">
- function ajaxFunction() {
- var xmlHttp;
- try {
- // Firefox, Opera 8.0+, Safari
- xmlHttp = new XMLHttpRequest();
- }
- catch (e) {
- // Internet Explorer
- try {
- xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e) {
- try {
- xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
- }
- catch (e) {
- alert("您的浏览器不支持AJAX!");
- return false;
- }
- }
- }
- return xmlHttp;
- }
- </script>
- <script type="text/javascript">
- var xmlhttp = null;
- function loadJsonData() {
- xmlhttp = ajaxFunction();
- if (xmlhttp != null) {
- xmlhttp.onreadystatechange = state_Change;
- var data = "id=231";
- //把这两句注释,看看下面的POST提交方式
- xmlhttp.open("GET", "Handler.ashx?" + data, true);
- xmlhttp.send(null);
- /*
- xmlhttp.open("POST", "Handler.ashx", true);
- //如果使用POST提交 不设置这条语句,url页面 Request.Form["key"] 是取不到值的!
- //这句我也不知道为什么要设置,网上找到的![GET提交可以不设置,但需要把参数拼接到URL]
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- xmlhttp.send(data); //如果是post提交,需要把数据发送过去
- */
- }
- else {
- alert("Your browser does not support XMLHTTP.");
- }
- }
- function state_Change() {
- if (xmlhttp.readyState == 4) {// 4 = "loaded"
- if (xmlhttp.status == 200) {// 200 = "OK"
- eval("var s = " + xmlhttp.responseText);
- $get("divDisplay").innerHTML = "ID" + s.id + "Name:" + unescape(s.name) + "Age:" + s.age;
- }
- else {
- alert("Error:" + xmlhttp.statusText);
- }
- }
- }
- </script>
- <div>
- <input type="button" value="GetJson" onclick="loadJsonData();" />
- <div id="divDisplay"></div>
- </div>
- </form>
- </body>
- </html>
AJAX提交到Handler.ashx一般处理程序返回json数据-转的更多相关文章
- AJAX提交到Handler.ashx一般处理程序返回json数据 (字符串拼接方式)
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System ...
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.W ...
- 用jQuery的ajax请求一般处理程序返回json数据
1.web页面代码: 注意事项: dataType类型一定要写成json. 2.一般处理程序代码: 注意事项: ContentType类型写成"application/json"或 ...
- ashx将datatable返回json数据
1.直接使用JsonConvert.SerializeObject().将datatable放入 输出字符串 下面是测试:用webform+ashx作为接口. public class GetJso ...
- ashx文件结合ajax使用(返回json数据)
ashx文件返回json数据: public void ProcessRequest(HttpContext context) { context.Response.ContentType = &qu ...
- jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)
1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...
- 用ajax获取后台数据,返回json数据,怎么在前台使用?
用ajax获取后台数据,返回json数据,怎么在前台使用呢?后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == &qu ...
- jquery的ajax异步请求接收返回json数据
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...
- jquery ajax返回json数据进行前后台交互实例
jquery ajax返回json数据进行前后台交互实例 利用jquery中的ajax提交数据然后由网站后台来根据我们提交的数据返回json格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...
随机推荐
- RabbitMQ的工作模式
简单模式: # #########################基于简单模式的 生产者 ######################### #!/usr/bin/env python import ...
- android IPC通信(上)-sharedUserId&&Messenger
看了一本书,上面有一章解说了IPC(Inter-Process Communication,进程间通信)通信.决定结合曾经的一篇博客android 两个应用之间的通信与调用和自己的理解来好好整理总结一 ...
- caffe学习--Lenet5的应用和原理、实现----ubuntu16.04.2+caffe+mnist+train+test
Lenet5的应用和原理.实现 ----------------------------------------------ubuntu16.04.2------------------------- ...
- 理解DOMSTRING、DOCUMENT、FORMDATA、BLOB、FILE、ARRAYBUFFER数据类型
一.XMLHttpRequest 2.0的家臣们 我大学那会儿,一个称为Ajax的东西对前端行业造成了深远影响,不仅是JS语言,而包括前端地位.职位兴起以及工作分工等.抛开IE6浏览器不谈,其他浏览器 ...
- 多线程(C++)临界区Critical Sections
一 .Critical Sections(功能与Mutex相同,保证某一时刻只有一个线程能够访问共享资源,但是不是内核对象,所以访问速度比Mutex快,但是没有等待超时的功能,所以有可能导致死锁,使用 ...
- 用Cocoapods集成XMPPFramework 遇 Module 'KissXML' not found 问题
用Coacopods集成XMPPFramework完成后Command + B,报Module 'KissXML' not found 一般来说,通过Coacopods集成集成第三方框架,不会再有依赖 ...
- redis的主从复制和哨兵支持的主从切换
1 主从复制的目的是为了读写分离 master写,然后同步到slave,slave只管读. 2 哨兵存在的目的 是为了主从切换,如果master挂了,那么一个slave成为master,重启之后的ma ...
- kernel.panic
sysctl -a kernel.panic = 0kernel.panic_on_io_nmi = 0kernel.panic_on_oops = 1kernel.panic_on_stackove ...
- 推荐一个非常好的 IntelliJ IDEA 教程
教程地址:https://github.com/judasn/IntelliJ-IDEA-Tutorial 作者博客:http://www.youmeek.com/category/software- ...
- mac 中安装redis 以及 安装php-redis扩展过程详细记录
1. 通过homebrew 安装 redis sodu brew install redis 2. 安装后执行开启redis,采用默认配置, 默认配置只有本地(127.0.0.1)可以访问.需要远程访 ...