维洛特烦恼 2020-07-05 16:40 采纳率: 0%
浏览 399

Js中通过XMLHttpRequest调用读取本机json文件的疑问

我是打算将json中的数据用echarts图标展示出来,所以将读取的操作写入了echarts的点击事件中,具体代码是这样:

myChart.on('click', function (params) {
    if (params.componentType === 'series' && params.seriesType === 'line') {
        var dataIndex = params.dataIndex;
        if(request!=null){
            var url = "./data/cnn4/aapd/metrics_epoch_" + dataIndex + ".json";/*json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径*/
            request.open("GET", url,true);/*设置请求方法与路径*/
            // request.setRequestHeader('Content-Type','application/json');
            //request.overrideMimeType("application/json");
            request.onreadystatechange = function () {/*XHR对象获取到返回信息后执行*/
                if(request.readyState == 4){
                    if (request.status == 200) {/*返回状态为200,即为数据获取成功*/
                    var json = JSON.parse(request.responseText);
                    //后面开始读数据操作

然后我运行的时候发现需要点击两次才能把新的数据读进来,如果是刚开始点击第一次是没有数据的,然后再点击一次才会将数据读入显示,我的setoption操作也是紧跟着前面的,紧接着读完数据就马上画图,上网找了资料发现可能是因为xmlhttprequest非简单请求会先发一个options预检请求,而我已经把自定义的头都注释了用了get结果还是不行,网上也没有查找到可以屏蔽掉第一次请求返回数据的方法,想问下大家有什么解决办法吗?想只点击一次就可以出来图形。

  • 写回答

1条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 优质github账号直接兑换rmb,感兴趣伙伴可以私信
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)