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格式的数据,下面我来演示一个实例. 先我们看演示代码 代码如 ...
随机推荐
- git操作-如何把你的本地仓库放到GitHub已有仓库
本地: 首先在你的本地git init 初始化一个仓库,然后git add . 将所有的文件都打包到仓库中,git -commit -m "first_commit" 此时是没有什 ...
- Kubernetes基本概念之Label
系列目录 在为对象定义好Label后,其他对象就可以通过Label来对对象进行引用.Label的最常见的用法便是通过spec.selector来引用对象. apiVersion: v1 kind: R ...
- javascript点滴积累
1. javascript中的array, set, map 均为数据容器,使用iterable内置的forEach方法 var a = ['A', 'B', 'C'];a.forEach(funct ...
- JavaScript读书笔记(3)-操作符、语句和函数
1. 操作符 (1) 一元操作符 前置递增和递减操作符,变量的值都是在语句被求值以前改变的:后置相反 (2) 位操作符 在ECMAScript中,对数值进行位操作时,会发生以 ...
- iOS开发之NewsstandKit.framework的使用
本文转载至 http://mobile.51cto.com/iphone-423385.htm 系统提供NewsstandKit.framework来支持newsstand类型的程序,就是在spr ...
- iOS8的UIPresentationController
本文转载至 http://kyfxbl.iteye.com/blog/2147888 从iOS8开始,controller之间的跳转特效,需要用新的API UIPresentationControll ...
- BZOJ2759: 一个动态树好题
BZOJ2759: 一个动态树好题 Description 有N个未知数x[1..n]和N个等式组成的同余方程组:x[i]=k[i]*x[p[i]]+b[i] mod 10007其中,k[i],b[i ...
- java中Integer在JDK1.6和JDK1.7中的区别
运行下面这段代码: System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); Sy ...
- [Java多线程] volatile 关键字正确使用方法
volatile 变量具有 synchronized 的可见性特性,但是不具备原子特性,即多线程环境中,使用 volatile 关键字的变量仅可以保证不同线程读取变量时,可以读到最新修改的变量值,但是 ...
- php命名空间使用总结
从php5.3开始可以使用命名空间,命名空间是为了防止命名 空间的元素重复而使用的.命名空间的元素包括:class.function.const(从php5.3开始在类外部也可以用const定义常量, ...