Ajax请求ashx 返回 json 格式数据常见问题

 

问题:ashx 返回的字符串json格式,在前台ajax自动解析失败。

问题分析:经过排查,发现是拼接json时出现” ’  “单引号,jquery无法解析,用” “ “双引号才可以。例如:

string strjson="[ { 'userName':'test'}]";  //单引号导致jquery无法自动解析。



string strjson="[ {\"userName\":\"test\"}]"; // 双引号可以解析;

 

ajax 代码:

  $.ajax({

                    type: 'post',

                    url: 'Report.ashx?type=1',

                    dataType: 'json',

                    async: 'true', //异步

                    cache: 'false',

                    success: function(data) {

                      

                        mychartOptions.series = data;



                        var chart = $("#report1").highcharts(mychartOptions);

                    },

                    error: function(XMLHttpRequest, textStatus, errorThrown) {



                        $("#report1").html("<span>获取数据失败" + textStatus + "</span>");



                    }





                });

 

后台ashx代码:

  public void ProcessRequest(HttpContext context)

        {

            string type = context.Request["type"];



            if (type == "1")

            {

                // 三种设置测试都通过,不设置contenType也可以     "application/json"  "text/plain"  "text/json" 

                //context.Response.ContentType = "text/json";



                string json = "[{\"userid\":123}]";

                context.Response.Write(json);

            }

            else if (type == "2")

            {

                GetReport2(context);

            }



        }        

 

你可能感兴趣的:(ajax请求)