问题: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); } }