通过ajax向后台传数据 后台处理完后返回数据给ajax 提示找不到对象

今日坑,今日毕。明天还有新的坑。

问题:

通过ajax向后台传数据 后台处理完后返回数据给ajax提示找不到对象。
大概是这样的:
页面:

$.ajax({
	url : url,
	data : data,
	type : "post",
	dataType : "json",
	async : false,
	success : function(d){
		if(d.code == Global.WEBRESULT_SUCCESS){
			//......
		}
	}
});

平平无奇的前端。
后台接收:

//@ResponseBody
@RequestMapping(value = "xxx", method = RequestMethod.POST)
   public WebResult xxx(HttpServletRequest request, HttpServletResponse response) {
	String bmh=request.getParameter("bmh");
	//return null;
   }

平平无奇的后台。

解决:

忘记添加@ResponseBody了。答案写在题面上!就是注释掉的那一行!
呵呵呵。

@ResponseBody
@RequestMapping(value = "xxx", method = RequestMethod.POST)
   public WebResult xxx(HttpServletRequest request, HttpServletResponse response) {
	String bmh=request.getParameter("bmh");
	//return null;
   }

分析:

引自:https://blog.csdn.net/qq_21875331/article/details/77849469
经分析是请求没有返回状态码,这是因为我用的是SpringMVC框架,前后端使用JSON传递数据,因为返回的是对象,而忘记了添加
@ResponseBody
所以 Spring对我的返回值进行了映射,但是映射结果又对应不到视图,所以返回了404

拓展,关于@Responsebody:

参考:https://www.cnblogs.com/daimajun/p/7152970.html
一言以蔽之:
在使用@RequestMapping后,返回值会被解析为跳转路径;但是加上@ResponseBody后,返回结果不会解析为跳转路径,而是直接写入Http response body中。

所以这里才会提示:找不到资源(将返回值解析成了跳转路径,但此时没有对应的资源)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值