springmvc没有Springboot好用;所以就用了ajax通信来获取数据,这其中有不少坑,我来带大家踩一踩。

  1.在控制层中,接口不能直接返回Json格式。

    

     我的解决方法可以使通过map,或者自己新建一个响应实体类,接口返回实体类或Map.

   2.通过按钮来拿到接口传过来数据,然后转换。

             //全部变量定义。

             var lyhGanttuData={];

            //在调用接口获取数据的方法里,

     lyhGanttuData=JSON.parse(ajaxObj.responseText);//这个是把string类型转为Json格式,不然数据无效

       3.获取数据JS。

     document.querySelector('#btnAjax').onclick = function () {
// 发送ajax 请求 需要 五步

// 1)创建异步对象
var ajaxObj = new XMLHttpRequest();

// 2)设置请求的参数。包括:请求的方法、请求的url
ajaxObj.open('get', 'http://localhost:8080/Demo/home/gantee');

// 3)发送请求
ajaxObj.send();

//4)注册事件。 onreadystatechange事件,状态改变时就会调用。
//如果要在数据完整请求回来的时候才调用,我们需要手动写一些判断的逻辑。
ajaxObj.onreadystatechange = function () {
// 为了保证 数据 完整返回,我们一般会判断 两个值
if (ajaxObj.readyState == 4 && ajaxObj.status == 200) {
// 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
// 5.在注册的事件中 获取 返回的 内容 并修改页面的显示
console.log('数据返回成功');

// 数据是保存在 异步对象的 属性中
console.log(ajaxObj.responseText);

// 修改页面的显示
// document.querySelector('h1').innerHTML = ajaxObj.responseText;
//String转换为Json格式
lyhGanttuData=JSON.parse(ajaxObj.responseText);
$(function() {
lyhGanttuInit('lyh-ganttu'); //甘特图初始化
})
}
}
}

当然这个btnAjax',是界面一个按钮。

<div id = '123'>
<input type="button" value="发送get_ajax请求" id='btnAjax'>

</div>

 

结果演示:

 先时刚加载界面:  

  

 

然后是点击请求后:

浏览器出现问题,排版格式一直报错,但是不影响布局。

posted on 2020-05-20 15:28  一个痴迷于技术的码农  阅读(442)  评论(0编辑  收藏  举报