关于jquery 的ajax调用的一些总结(记录插入数据库成功,但ajax返回false)

本文详细记录了使用jQuery AJAX调用时遇到的问题,即数据已成功插入数据库,但AJAX回调函数返回false的情况。通过分析代码并尝试解决异步执行问题,最终发现是因为未正确处理HTTP响应导致的错误。加入正确的HTTP响应处理后,问题得以解决。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值