关于jquery 的ajax调用的一些总结(记录插入数据库成功,但ajax返回false)
ajax方法如下
function addFlexMarker(pageNum) {
var flag = false;
$.ajaxSettings.async = false;
$.getJSON("${ctx}/system/sysfilebookmarkadd.action", {fileId:fileCode,bookmark:pageNum}, function(json){
flag = true;
});
return flag;
}
action代码如下:
@RequestMapping("/system/sysfilebookmarkadd.action")
public void SysFileBookmarkAdd(HttpServletRequest request,HttpServletResponse response){
String fileId = request.getParameter("fileId")==null?"0":(String)request.getParameter("fileId");
String bookmark = request.getParameter("bookmark")==null?"1":(String)request.getParameter("bookmark");
String userId = this.getLoginUser().getUserid();
SysFileBookmark sim = new SysFileBookmark();
sim.setfileId(Long.parseLong(fileId));
sim.setbookMark(Long.parseLong(bookmark));
sim.setOprUser(Long.parseLong(userId));
SysFileBookmarkService.addItemMark(sim);
//this.outString(response, "");
}
addFlexMarker方法一直返回false,以为是异步执行的问题,加上了$.ajaxSettings.async = false;问题依旧,
数据虽然插入了数据库,但js方法的 flag=true一直没执行,
一开始猜测是action没有返回任何数据造成的,于是加上了this.outString(response, "");此时发现报错,原来action方法里没加response参数
加上HttpServletResponse response后,一切正常了。