zoukankan      html  css  js  c++  java
  • 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();
    }
    }

  • 相关阅读:
    C# 面向对象系列笔记(三)
    C# 面向对象系列笔记(二)
    分享一下: C# 面向对象系列笔记(一) ,希望对大家有所帮助
    新人报到
    VUE+ELEMENT-UI的后台项目封装组件--查询form的封装
    vue+element-ui的后台项目封装组件--面包屑的封装
    数组对象循环格式化时间撮的转换
    VUE+ELEMENT-UI的后台项目封装组件--table的封装
    css的样式问题
    vue项目兼容es6语法跟IE浏览器
  • 原文地址:https://www.cnblogs.com/dashanboke/p/7045082.html
Copyright © 2011-2022 走看看