页面代码

<form id="form1" runat="server">
<div>
<p> Ajax请求ashx返回json数据的常见问题 </p>
<button type="button" id="btnrq">点击请求数据</button>
</div>
<div id="iddiv"></div>
</form>

1   请求text数据,在success事件中手动解析    第一种返回json字符  

前台:

<script>
//第一种返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },
dataType: "text",
success: function (data) {
var json = eval('(' + data + ')')//为什么 加eval函数,本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。
alert("性别:" + json.sex + ",爱好:" + json.interest);
// $("#iddiv").text(json.sex);
}
});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"篮球\" }";
context.Response.Write(json);
context.Response.End();
}
}

2. 请求json数据,在success事件中手动解析    JQ自动解析   第二种返回json对象

前台:

<script>
//第一种返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },
dataType: "json",
success: function (data) {
//var json = eval('(' + data + ')')//为什么 加eval函数,本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。 
alert("性别:" + json.sex + ",爱好:" + json.interest);
// $("#iddiv").text(json.sex);
}
});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"篮球\" }";
context.Response.Write(json);
context.Response.End();
}
}

3.带序列化text数据,在success事件中手动解析    返回带序列化json对象

前台:

<script>
//第一种返回json字符
$(document).ready(function () {
$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },

dataType: "text",
success: function (data) {
$("#iddiv").text(data);
var json = eval('(' + data + ')');//为什么 加eval函数,本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

var json1 =val("(" + data + ")");
//因为后台声明的字符串,又序列化之后 所以在此处理两次 (PS:偷个懒 下同)
alert("性别:" + json1.sex + ",爱好:" + json1.interest);
// $("#iddiv").text(json.sex);
}

});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"篮球\" }";
JavaScriptSerializer js = new JavaScriptSerializer();   //   ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.
var j=js.Serialize(json);
context.Response.Write(j);
context.Response.End();
}
}

4.带序列化的json 前台自动解析:  第四种返回序列化的json对象

前台:

<script>
//第一种返回json字符
$(document).ready(function () {

$("#btnrq").click(function () {
$.ajax({
type: "post",
url: "Result.ashx",
data: { "name": "li" },

dataType: "json",
success: function (data) {
$("#iddiv").text(data);
alert("性别:" + json.sex + ",爱好:" + json.interest);
}

});

});
});
</script>

后台  :

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
request(context);
}
void request(HttpContext context) {
var name = context.Request["name"];
if (name == "li") {
string json = "{\"sex\":\"男\",\"interest\":\"篮球\" }";
JavaScriptSerializer js = new JavaScriptSerializer();   //   ASP.NET中的JSON序列化和反序列化还可以使用JavaScriptSerializer,在System.Web.Script.Serializatioin命名空间下,需引用System.Web.Extensions.dll.
var j=js.Serialize(json);
context.Response.Write(j);
context.Response.End();
}
}

jquery 请求返回的几种方式的更多相关文章

  1. 通过XMLHttpRequest和jQuery实现ajax的几种方式

    AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ...

  2. jquery.validate+jquery.form提交的三种方式

    原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ...

  3. jQuery 实现图片放大两种方式

    jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...

  4. Android请求服务器的两种方式--post, get的区别

    android中用get和post方式向服务器提交请求_疯狂之桥_新浪博客http://blog.sina.com.cn/s/blog_a46817ff01017yxt.html Android提交数 ...

  5. Ajax请求数据的两种方式

    ajax 请求数据的两种方法,有需要的朋友可以参考下. 实现ajax 异步访问网络的方法有两个.第一个是原始的方法,第二个是利用jquery包的 原始的方法不用引入jquery包,只需在html中编写 ...

  6. jQuery编写组件的几种方式

    原文链接:https://w.cnblogs.com/xiao-xi/p/8572471.html 三种方式: 1.通过$.extend()来扩展jQuery 2.通过$.fn 向jQuery添加新的 ...

  7. jQuery绑定事件的四种方式

      jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都 ...

  8. 使用JQuery获取对象的几种方式

    1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ...

  9. struts2 添加请求后缀的3种方式

    第一种方式在struts.xml文件中添加 <constant name="struts.action.extension" value="">&l ...

随机推荐

  1. 【代码审计】XYHCMS V3.5任意文件读取漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  2. 关于rem适配的3种常用封装

    在之前写了一篇关于rem适配的文章,但是没有给出具体的封装,那么今天这里给出常用的三种方法,分享出来供大家参考学习,下面话不多说了,来随着小编一起学习学习吧 一.rem1.js 第一种方法考虑了m端屏 ...

  3. jmeter之结果重定向

    在使用jmeter与jenkins对接时,发现默认打印出来的日志就是正常的summary统计,如果要查看日志,只能通过jmeter.log去查看. 来来来,我们一起温习下jmeter的命令行参数 -- ...

  4. 秒杀应用的MySQL数据库优化

    关于秒杀 随着双11活动的不断发展,小米饥饿营销模式的兴起,“秒杀”已经成为一个热点词汇.在一些活动中,热销商品会以惊人的速度售罄,比如最近本人在抢购美图M4手机,12点开卖,1分钟之内就被售罄. 秒 ...

  5. Slapper帮助Dapper实现一对多

    Dapper的Query的方法提供了多个泛型重载可以帮助我们实现导航属性的查询 1对1 public class Employees4List { public int Id { get; set; ...

  6. AJAX里使用的弹窗样式 tanchuang.js tanchuang.css

    tanchuang.js // 每个弹窗的标识 var x =0; var idzt = new Array(); var Window = function(config){ //ID不重复 idz ...

  7. SCSS快速入门

    SCSS快速入门 1. 使用变量sass引入了变量.通过变量名来引用它们,使用$符号来标识变量.且在CSS中并无他用,不会导致与现存或未来的css语法冲突. 1-1. 变量声明sass变量的声明和cs ...

  8. UIScrollView的一些关系

    contentInsets和contentoffset以及contentSize 可见范围: contentSize + contentInsets 也就是(contentSize.width+con ...

  9. qs.parse()、qs.stringify()使用方法

    qs是一个npm仓库所管理的包,可通过npm install qs命令进行安装. 1. qs.parse()将URL解析成对象的形式 const Qs = require('qs'); let url ...

  10. python-mysql数据库导表存excel后发邮件(实例2)

    需求:用户输入mysql数据库中某表名,将此表导入到excel中,将导出文件以邮件形式发出 设计思路: 1连接数据库 2读取表头(cur.description--获取表头,函数返回二维元组,采用列表 ...