双人余公 2021-08-08 17:11 采纳率: 75%
浏览 65
已结题

echarts怎么从后台ashx文件读取数据

最近在学习echats,卡在前端读取后台数据上了,看了很多资料,感觉很乱,数据仍然加载不出来。

html:


<body>
    <div id="main" style="height:400px;width:600px">
    </div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        myChart.setOption({                   //新建一个新图表
            title: { text: '异步加载数据' },
            tooltip: {},
            lengd: { data: ['销量'] },
            xAxis: { data: [] },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'line',
                data: []
            }]
        });
            
        $.ajax({
            // type:"post",
            url: 'Handler1.ashx',//请求数据的地址
            dataType: 'json',

            success: function (result) {
                result = JSON.stringify(result);
                myChart.setOption({        //加载数据图表
                    xAxis: {
                        data: result.x
                    },
                    series: [{
                        data: result.y
                    }]
                });
            },
            error: function (errorMsg) {
                alert("图表请求数据失败!");
            }
        });
    </script>
</body >



ashx文件

namespace WebApplication12
{
    public class Handler1 : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            string[] categories = new string[] { "衬衫", "羊毛衫", "手套", "鞋子", "毛巾" };
            int[] data = new int[] { 5, 13, 21, 24, 9 };
            string x = JsonConvert.SerializeObject(categories);
            string y = JsonConvert.SerializeObject(data);
            context.Response.Write(x);
            context.Response.Write(y);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

调试界面如下

img

img
可以看到数据是转换成json格式了,也能在调试界面显示,但是前端仍然获取失败,找不到原因。

  • 写回答

2条回答 默认 最新

  • ~平凡之人~ 2021-08-08 21:04
    关注

    context.Response.Write(x);
    context.Response.Write(y);
    感觉是这块代码有问题,这是把x,y分两次返回到前端;
    建议可以再创建一个对象把x,y这两个数据封装进对象之中,然后返回这个封装的对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月18日
  • 已采纳回答 8月10日
  • 创建了问题 8月8日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来