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 = "";
//判断提交方式
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 = "loaded"
if (xmlhttp.status == ) {// 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" %> u ...
- 前台返回json数据的常用方式+常用的AJAX请求后台数据方式
我个人开发常用的如下所示: 之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据 现在常用的是返回JSON数据,XML的时代一去不复返 JSON相对于XML要轻量级的多 对JSON不是十分熟悉 ...
- 利用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 ...
- ajax请求、servlet返回json数据
ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...
- JavaWeb 返回json数据的两种方式
1.说明 由于一般情况下,由浏览器(前端)发送请求,服务器(后台)响应json数据,所以这里结合js进行说明: A服务器发送请求至B服务器,并接收其返回的json数据,见文末推荐,这里不再赘述! 2. ...
- 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 ...
随机推荐
- archlinux相关资料整理
Arch linux Arch Linux Wiki Arch linux Wiki Markdown Arch Wiki python continuing ...
- tomcat那些事
Tomcat7.0.22安装配置 1.下载tomcat7.0.22 下载地址:http://tomcat.apache.org/download-70.cgi 2.添加系统环境变量,我的电脑-> ...
- Container With Most Water 解答
Question Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate ...
- find命令笔记
find 命令: 文件查找:locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的:# updatedb, 手动生成文件数据库速度快 find: 实时 精确 支持众 ...
- IE 中创建 子窗口 传值 与接收值 【window.showModalDialog】
父窗口 创建一个窗口 var backinfo = window.showModalDialog('UserSelect.aspx', '', 'dialogHeight=600px; dialogW ...
- node.js实践第二天
使用Express框架搭建一个网站 1.安装Express 首先要用全局模式安装Express,因为只有这样才能在命令行中使用它.使用下述命令在伪dos命令窗口安装express. $ npm ins ...
- wcf 给net.tcp 加mex
<?xml version="1.0" encoding="utf-8" ?><configuration> <system.s ...
- 【转】关于ios10中ATS的问题
原文连接:https://onevcat.com/2016/06/ios-10-ats/ WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通 ...
- (转)MVC语法-@helpers和@functions(Razor内定义函数)
(转)MVC语法-@helpers和@functions(Razor内定义函数) 转自:http://www.mikesdotnetting.com/Article/173/The-Differenc ...
- ENOVIA 基础
Part 零件 Part Master PM 如何表示零件:每当创建一个Part(给定一个Part Number),都回创建一个Part Master Part Master管理每个Part的最本质的 ...