springboot中PostMapping正常接收json参数后返回404问题
作者:陆沙 发布时间:2021-07-22 20:46:28
PostMapping接收json参数后返回404
问题描述
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。
@PostMapping注解解析
开发过程IDEA提示如将
@RequestMapping(value="/abc" , method = “RequestMethod.POST”)
替换成@PostMapping。现对@PostMapping的实现。
@PostMapping是一个复合注解,Spring framework 4.3引入了@RequestMapping注释的变体,以更好地表示带注释的方法的语义,作为@RequestMapping(method = RequestMethod.POST)的快捷方式。
也就是可以简化成@PostMapping(value="/abc" )即可,主要是方便识记。
下面很多方法都是对应着@RequestMapping的标记的别名。
@RequestMapping(value = “”, path = “”, params = “”, headers = “”,consumes = “”, produces = “”)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.POST)
public @interface PostMapping {
/**
* RequestMapping 的别名,
*/
@AliasFor(annotation = RequestMapping.class)
String name() default "";
/**
*RequestMapping#value的别名, 默认为空字符串,一般需要自己填写
*/
@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
/**
* RequestMapping#path的别名
*/
@AliasFor(annotation = RequestMapping.class)
String[] path() default {};
/**
* RequestMapping#params的别名
*/
@AliasFor(annotation = RequestMapping.class)
String[] params() default {};
/**
* RequestMapping#headers的别名
*/
@AliasFor(annotation = RequestMapping.class)
String[] headers() default {};
/**
* RequestMapping#consumes的别名
*/
@AliasFor(annotation = RequestMapping.class)
String[] consumes() default {};
/**
* RequestMapping#produces的别名
*/
@AliasFor(annotation = RequestMapping.class)
String[] produces() default {};
}
其他变体如下:
@GetMapping、@PutMapping、@PatchMapping和@DeleteMapping,与@PostMapping实现类似
来源:https://blog.csdn.net/pxy7896/article/details/107109613
猜你喜欢
- 本文实例为大家分享了java图形用户界面实现菜单功能的具体代码,供大家参考,具体内容如下题目:编写一个图形用户界面,实现菜单的功能。有3个一
- 这篇文章主要介绍了SpringBoot跨域Access-Control-Allow-Origin实现解析,文中通过示例代码介绍的非常详细,对
- 其实以前我对Java的Struts框架没有具体认识,通过这篇文章,真的让我了解了框架的用处,好处。下拉框在Web开发中经常会使用到,下面我们
- 短网址(Short URL) ,顾名思义就是看起来很短的网址。自从twitter推出短网址服务以后,各大互联网公司都推出了自己的短网址服务。
- 本文的主要内容包括在下图,下面来一起看看吧。1、&和&&的区别2、switchswitch语句能否作用在byte,能
- 应用场景假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库中没有产品,则生产者将产品放入仓库,否
- 概述JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScri
- 废话开篇:iOS与android在实现列表界面的时候是有重用机制的,目的就是减少内存开销,用时间换空间。个人感觉flutter并没有特别强调
- 本Demo为练手小项目,主要是熟悉目前主流APP的架构模式.此项目中采用MVC设计模式,纯代码和少许XIB方式实现.主要实现了朋友圈功能和摇
- 前言开发中,免不了会用到多边形、多角星等图案,比较常用的多边形比如雷达图、多角星比如评价星级的五角星等,本篇文章就使用Flutter绘制封装
- DATAXDataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postg
- 这篇文章主要介绍了JAVA基于SnakeYAML实现解析与序列化YAML,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- 数组实现Java 自定义Queue队列及应用Java 自定义队列Queue:队列的抽象数据类型就是一个容器,其中的对象排成一个序列,我们只能
- 问题现象:HTTP Status 403-Invalid CSRF Token 'null' was found on th
- Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,
- 需求描述:企业开发过程中,经常需要将一些静态文本数据放到Resources目录下,项目启动时或者程序运行
- springboot读取配置文件到静态工具类通常我们读取配置文件可以用@Value注解和@Configuration,@Configurat
- 一、Sharding-JDBC简介Sharding-JDBC是Sharding-Sphere的一个产品,它有三个产品,分别是Sharding
- OutputDebugString属于windows API的,所以只要是包含了window.h这个头文件后就可以使用了。可以把调
- 本文我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibern