有不对的地方,或者有更好的方法请各位大佬指教
在Controller层接收axios.get()请求的参数时候,不论是发送单个参数,或者json类型、map类型参数,不论后台用@RequestParam、@RequestBody 、@PathVariable (请求路径上加不加占位符都尝试了)都接收不到。
最后发现发送的参数要加params:{ } ,请求路径上不加任何注解,这样可以接收到。
后台代码
@Controller @RequestMapping("cart") @ResponseBody public class CartController { @Autowired private CartServiceInterface cartServiceInterface; @Autowired private GoodsServiceInterface goodsServiceInterface; @RequestMapping("/add") public R<String> addCart(@RequestBody Cart cart) { cartServiceInterface.save(cart); return R.success(cart.getGoodsName() + "已添加购物车"); } @RequestMapping("/get") public R<Object> getCart( Cart cart) { System.out.println(cart); LambdaQueryWrapper<Cart> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Cart::getUserName, cart.getUserName()); //查询数据库中存储的用户购物车信息 Cart cart1 = cartServiceInterface.getOne(wrapper); if (cart1 != null) { return R.success(cart1); } else { return R.error("您的购物车还是空的哦,赶紧去逛一逛吧~"); } } }
其他:
axios携带参数方式 (?name=张三) (/张三) 后台使用@RequestParam、@PathVariable接收
post请求携带对象作为参数使用@ResponseBody接收