关于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后,一切正常了。