spring-boot 接口请求之Ajax数据请求格式

xiaoxiao2021-02-28  23

 spring后台的controller提供了@RequestParam、@RequestBody等参数注解,使用不同的注解,对于允许的前台请求格式也不一样,下面就列出不同格式的请求实例:

 本环境使用spring-boot搭建后台接口服务,前台采用ajax形式发送数据,数据的传递使用Bean实体类接收,在参数接收时,如果出现日期格式无法解析的情况,参见本人的另一篇文章

spring-boot 接口请求之Date、LocalDate、LocalDateTime日期类型转换处理

本文所用的实体Bean为:

public class Ajax implements Serializable{ private Long id; private String name; private String path; private Date createdDate; private LocalDateTime createdTime; }

第一种:controller参数为不带注解的形式:

后台controller接口:

/*** * 实体类无注解接收参数 * @return */ @RequestMapping(value = "/getOfBean") @ApiOperation("Bean实体参数") public Ajax getOfBean(Ajax ajax) throws Exception{ logger.info("异步参数接收:{}",ajax.toString()); return ajax; }ajax请求方式:

var param1={ id:1234, name:'名称', path:'路径', createdDate:'2017-01-05 12:45:32', createdTime:'2017-01-05 12:45:32' }; $.get("http://127.0.0.1:8888/ajaxApi/getOfBean",param, function(result){ console.info("result:"+JSON.stringify(result)); alert(JSON.stringify(result)); }); 【*】使用无注解的形式接收参数,前台发送json格式数据,使用get和Post方式都可以正常发送、接收数据 第二种:controller使用@RequestBody注解接收参数

后台controller接口:

/*** * 实体类 @RequestBody注解 接收参数 * @param ajax * @return * @throws Exception */ @RequestMapping(value = "/getOfBeanRequestBody") @ApiOperation("Bean实体参数@RequestBody注解") public Ajax getOfBeanRequestBody(@RequestBody Ajax ajax) throws Exception{ logger.info("异步参数接收:{}",ajax.toString()); return ajax; }ajax请求方式:

$.ajax({ type: "post", url: "http://127.0.0.1:8888/ajaxApi/getOfBeanRequestBody", data: JSON.stringify(param), contentType: "application/json; charset=utf-8", success: function (result) { console.info("result:"+JSON.stringify(result)); alert(JSON.stringify(result)); } }); 【*】注意:后台使用@RequestBody朱解释,ajax有如下显示

1.必须使用POST方式提交; 2.contentType必须设置为 application/json 格式; 3.发送的参数为json字符串形式,必须使用JSON.stringify(Param) 将json对象转为字符串

第三种:controller使用@RequestParam注解

后台controller接口:

/*** * 实体类 @RequestBody注解 接收参数 * @param ajax * @return * @throws Exception */ @RequestMapping(value = "/getOfBeanRequestParam") @ApiOperation("Bean实体参数@RequestPatam注解") public Ajax getOfBeanRequestParam(@RequestParam Ajax ajax) throws Exception{ logger.info("异步参数接收:{}",ajax.toString()); return ajax; }ajax请求:

$.ajax({ type: "post", url: "http://127.0.0.1:8888/ajaxApi/getOfBeanRequestBody", data: JSON.stringify(param), contentType: "application/json; charset=utf-8", success: function (result) { console.info("result:"+JSON.stringify(result)); alert(JSON.stringify(result)); } });

【*】注意:后台使用@RequestParam注释,和@RequestBody相同,ajax有如下显示

1.必须使用POST方式提交 2.contentType必须设置为 application/json 格式; 3.发送的参数为json字符串形式,必须使用JSON.stringify(Param) 将json对象转为字符串;

文章为本人测试后所写,欢迎各位留言交流,如有不对请指正,欢迎大家留言

转载请注明原文地址: https://www.6miu.com/read-1600332.html

最新回复(0)