解决$.ajax的回调函数值和SpringMVC返回String时冲突的问题

32 篇文章 0 订阅
9 篇文章 0 订阅


前提:

我们靠ajax发送请求,给其success:function(result){}回调函数并根据返回的result进行下一步操作


$.ajax({
	url:"${pageContext.request.contextPath}/items/batchDelete.action",
	type:'POST',
	data:{"ids":ids},
	success:function(result){
	    if(result == 'success'){
	         window.location.href="${pageContext.request.contextPath}/items/toItemsList.action";
	    }	
	}
});



后台代码如下:

因为SpringMVC返回String时候是进行页面跳转的,如return "success"时,在配置了前缀后缀的情况下,页面会跳转到 localhost:8080/xxx/xxx/success.jsp,这时就会因为找不到页面而报404,而且ajax接收到的result是整个 localhost:8080/xxx/xxx/success.jsp 的html对象

并且我们此时是ajax提交的请求,仅仅想给ajax返回一个回调函数值,根据这个返回值进行下一步操作

解决方法:此时可以添加 @ResponseBody注解即可返回给ajax给定的字符串,而不是让SpringMVC以为返回的String是要进行页面跳转


	@RequestMapping("/batchDelete.action")
	@ResponseBody
	public String batchDelete(String ids){
		
		String[] strs = ids.split(",");
		
		try {
			itemsService.batchDelete(strs);
			return "success";
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		return "error";
	}










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值