jquery 请求返回的几种方式
页面代码
<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 请求返回的几种方式的更多相关文章
- 通过XMLHttpRequest和jQuery实现ajax的几种方式
		AJAX大家已经都知道了,是为了实现异步通讯,提高用户体验度,而将很多旧知识(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一个新的知识框架.而,XMLHttpR ... 
- jquery.validate+jquery.form提交的三种方式
		原文:http://www.cnblogs.com/datoubaba/archive/2012/06/06/2538873.html jquery.validate+jquery.form提交的三种 ... 
- jQuery 实现图片放大两种方式
		jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ... 
- Android请求服务器的两种方式--post, get的区别
		android中用get和post方式向服务器提交请求_疯狂之桥_新浪博客http://blog.sina.com.cn/s/blog_a46817ff01017yxt.html Android提交数 ... 
- Ajax请求数据的两种方式
		ajax 请求数据的两种方法,有需要的朋友可以参考下. 实现ajax 异步访问网络的方法有两个.第一个是原始的方法,第二个是利用jquery包的 原始的方法不用引入jquery包,只需在html中编写 ... 
- jQuery编写组件的几种方式
		原文链接:https://w.cnblogs.com/xiao-xi/p/8572471.html 三种方式: 1.通过$.extend()来扩展jQuery 2.通过$.fn 向jQuery添加新的 ... 
- jQuery绑定事件的四种方式
		jQuery提供了多种绑定事件的方式,每种方式各有其特点,明白了它们之间的异同点,有助于我们在写代码的时候进行正确的选择,从而写出优雅而容易维护的代码.下面我们来看下jQuery中绑定事件的方式都 ... 
- 使用JQuery获取对象的几种方式
		1.先讲讲JQuery的概念 JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队.其实 JQuery是一个JavaScript的类 ... 
- struts2 添加请求后缀的3种方式
		第一种方式在struts.xml文件中添加 <constant name="struts.action.extension" value="">&l ... 
随机推荐
- Unity Remote远程调试
			http://www.cnblogs.com/qinghuaideren/p/3623368.html http://blog.csdn.net/u012741077/article/details/ ... 
- [DQN] What is Deep Reinforcement Learning
			已经成为DL中专门的一派,高大上的样子 Intro: MIT 6.S191 Lecture 6: Deep Reinforcement Learning Course: CS 294: Deep Re ... 
- Spring 整合 Junit4 进行单元测试
			1. pom.xml 引入JAR依赖: <dependency> <groupId>junit</groupId> <artifactId>junit& ... 
- Matlab 瑞利信道仿真
			转眼间三月都已经过去一半,一直找不到有什么可以写的,一直想等自己把LTE仿真平台搭好后,再以连载的形式记录下来.但是,后来一想,我必须先做好充分的铺垫,在这过程中也遇到了很多问题,及时留下点什么,也是 ... 
- 【CF553E】Kyoya and Train 最短路+cdq分治+FFT
			[CF553E]Kyoya and Train 题意:有一张$n$个点到$m$条边的有向图,经过第i条边要花$c_i$元钱,经过第i条边有$p_{i,k}$的概率要耗时k分钟.你想从1走到n,但是如果 ... 
- Project Move from Qt 4 to Qt 5 项目工程的迁移
			将Qt4的项目迁到Qt5中并不需要新建一个Qt5的工程,可以直接在原工程文件上修改,这里我们使用的是VS2010和Qt5.4的环境,我们需要做以下修改: 1. 在工程里找到这个文件:工程名.vcxpr ... 
- Spring实战系列
			作者:arccosxy 转载请注明出处:http://www.cnblogs.com/arccosxy/ 稀里糊涂的做了2年的Java Web后端开发,很多东西连蒙带猜外加百度,也算是完成了几个重要 ... 
- Python的符号、对齐和用0填充
			# 用0填充 print("用0填充:{0:010.2f}".format(math.pi)) # 用1填充(事实上,你无法实现“用1填充”,因为即使实现了,那也是另外一个数字) ... 
- [No0000134]C#中的委托,匿名方法和Lambda表达式
			简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=5.答案是6个Fir ... 
- Hive中的order by、sort by、distribute by、cluster by解释及测试
			结论: order by:全局排序,这也是4种排序手段中唯一一个能在终端输出中看出全局排序的方法,只有一个reduce,可能造成renduce任务时间过长,在严格模式下,要求必须具备limit子句. ... 
