js中传递json数据给后端,后端可以正常接收参数,但返回404。 js
function rootConfirm(ids, types) { $.tool.confirm("确定结束" + options.modalName + "?", function () { $.ajax({ type: "post", url: options.confirmUrl, traditional: true, data: { 'ids': ids, 'types': types }, success: function (json) { $.tool.ajaxSuccess(json); $.tableUtil.refresh(); }, error: $.tool.ajaxError }); }, function () {}, 5000); }后台
@RequiresPermissions(value = {"root_orders:confirm", "root_orders:batchConfirm"}, logical = Logical.OR) @PostMapping(value="/root_orders/confirm") public ResponseVO rootConfirmOrder(Long[] ids, String[] types) { if (ids == null || types == null) return ResultUtil.error(500, "请至少选择一个订单"); for (int i = 0; i < ids.length; i++) { /*可以正常打印*/ System.out.println("" + ids[i] + ":" + types[i]); } return ResultUtil.success("成功结束 [" + ids.length + "] 个订单"); }添加**@ResponseBody**注解。因为我的函数,所在的类注解是@Controller,但函数是要返回数据而非视图的。
@RestController 这个注解相当于@ResponseBody 和 @Controller两个注解的组合,不返回视图,只返回数据。如果一个类上加了这个注解,那么这个类的函数都是返回不了视图的,return “redirect:/XXX/details”;也会只在页面上显示return的字符串。解决方法是把类上的注解改为@Controller,然后给不返回视图,只返回数据的函数加上注解@ResponseBody。