function getDate() {
$.ajax({
url: "../getDate.do",
dataType: 'json',
processData: false,
cache: false,
async: false,
data: "userName=" + userName,
success: function (result) {
alert(result.dataListMap);
},
error: function (result) {
alert("数据读取异常!" + result);
}
});
}
controller代码:
@RequestMapping("/getData.do")
@ResponseBody
public Map<String,Object> getData(HttpServletRequest request) {
String userName = request.getParameter("userName");
List<String> dataList = service.getDataList(userName);
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("dataListMap",dataList);
return dataMap;
}
async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程),当把async设为false时,这时ajax的请求时同步的。同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。