当前位置:   article > 正文

SpringBoot ajax get/post请求案例_springboot ajax post接口

springboot ajax post接口
 

本文主要是针对SpringBoot的ajax 请求、响应案例,配合适当注解,方便开发中使用,都是rest接口

$.ajax中contentType 和 dataType

contentType:设置你发送给服务器的格式

dataType:设置你收到服务器数据的格式,json/text

contentType 默认值:“application/x-www-form-urlencoded; charset=UTF-8”

JSON.stringify():将js数据转换为json格式

目录

GET请求/响应

基本数据类型(以int为例)

包装类型参数绑定

自定义对象类型参数绑定

List参数绑定

Map参数绑定

数组类型参数绑定

POST请求/响应

基本类型参数

json模式直接绑定自定义对象类型

json模式直接绑定自定义复合对象类型

json模式绑定数组类型

json模式绑定多个对象

1)使用List获取

2)使用Map接收

代码地址


GET请求/响应

创建:DataGetRequestController
  1. @RestController
  2. public class DataGetRequestController {
  3. }

基本数据类型(以int为例)

在controller中写一个int参数绑定的方法

  1. @GetMapping("/getInt")
  2. public int getInt(int id){
  3. return id;
  4. }

jquery的ajax请求

  1. $("#getInt").click(function(){
  2. $.ajax({
  3. type: "get",
  4. url: "/getInt?id=1000",
  5. dataType: "text",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  6. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  7. success: function(data){
  8. console.log(data)
  9. $("#getIntMsg").html(data)
  10. }
  11. });
  12. });

包装类型参数绑定

在controller中写多个包装类型参数绑定的方法

  1. @GetMapping(value = "/getBox",produces = {"application/json;charset=utf-8"})
  2. public String getBox(String name,Integer id){
  3. return "name = " + name + " id = " + id;
  4. }

jquery的ajax请求

  1. $("#getBox").click(function(){
  2. $.ajax({
  3. type: "get",//type:get type:post type:put type:delete
  4. url: "/getBox?id=1000&name=小王同学",
  5. dataType: "text",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  6. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  7. success: function(data){
  8. console.log(data)
  9. $("#getBoxMsg").html(data)
  10. }
  11. });
  12. });

自定义对象类型参数绑定

在controller中写自定义请求参数

  1. @GetMapping(value = "/getUser",produces = {"application/json;charset=utf-8"})
  2. public User getUser(User user){
  3. return user;
  4. }

jquery的ajax请求

  1. $("#getUser").click(function(){
  2. $.ajax({
  3. type: "get",//type:get type:post type:put type:delete
  4. url: "/getUser?userName=小王同学&password=123456&id=10000",
  5. dataType: "json",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  6. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  7. success: function(data){
  8. console.log(data)
  9. $("#getUserMsg").html("userName:"+data.userName+"password:"+data.password)
  10. }
  11. });
  12. });

List参数绑定

在controller中写List<Integer> 请求参数

  1. @GetMapping("/getIds")
  2. public List<Long> getIds(@RequestParam List<Long> ids){
  3. return ids;
  4. }

jquery的ajax请求

  1. $("#getIds").click(function(){
  2. $.ajax({
  3. type: "get",//type:get type:post type:put type:delete
  4. url: "/getIds?ids=1,2,3",
  5. dataType: "json",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  6. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  7. success: function(data){
  8. console.log(data)
  9. $("#getIdsMsg").html(data[0]+","+data[1]+","+data[2])
  10. }
  11. });
  12. });

Map参数绑定

controller中添加Map实体类参数

  1. @GetMapping(value = "/getMap",produces = {"application/json;charset=utf-8"})
  2. public Map<String,Object> getMap(@RequestParam Map<String,Object> map){
  3. return map;
  4. }

jquery中的ajax请求

  1. $("#getMap").click(function(){
  2. $.ajax({
  3. type: "get",//type:get type:post type:put type:delete
  4. url: "/getMap?id=10&name=小王同学&salary=3000",
  5. dataType: "json",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  6. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  7. success: function(data){
  8. console.log(data)
  9. $("#getMapMsg").html("id="+data.id+",name="+data.name+",salary="+data.salary)
  10. }
  11. });
  12. });

数组类型参数绑定

controller增加数组请求参数

  1. @GetMapping("/getArr")
  2. public String[] getArr(String[] arr){
  3. return arr;
  4. }

jquery中的ajax请求

  1. $.ajax({
  2. type: "get",//type:get type:post type:put type:delete
  3. url: "/getArr?arr=小王同学,滑雪,溜冰",
  4. dataType: "json",// 设置你收到服务器数据的格式,根据服务器返回类型填:json、text
  5. //contentType : 'application/json;charset=utf-8',//设置你发送给服务器的格式: application/json;charset=utf-8
  6. success: function(data){
  7. console.log(data)
  8. $("#getArrMsg").html(data[0])
  9. }
  10. });

POST请求/响应

由于前后端分离以及前端的多样性,通常我们使用json数据格式进行参数/数据传递,说到json格式,就得先说一下@RequestBody,这个是使用Json模式进行参数绑定必不可少的一环

1、@RequestBody注解解析

1)@RequestBody注解的作用将json格式的数据转为java对象

2)@RequestBody常用其来处理application/json类型

3)@RequestBody接收的是一个json格式的字符串

基本类型参数

在controller中增加基本类型参数

  1. @PostMapping("/postInt")
  2. public Integer postInt(Integer id){
  3. return id;
  4. }

jquery的ajax请求

  1. $.ajax({
  2. type: "post",
  3. url: "/postInt",
  4. data: {"id":1000},
  5. dataType: "json",
  6. success: function(data){
  7. console.log(data)
  8. $("#postIntMsg").html(data)
  9. }
  10. });

json模式直接绑定自定义对象类型

在controller中增加自定义类型参数

  1. @PostMapping("/postUser")
  2. public User postUser(@RequestBody User user){
  3. return user;
  4. }

jquery的ajax请求

  1. $.ajax({
  2. type: "post",
  3. url: "/postUser",
  4. data: JSON.stringify({"userName":"小黑","password":"123456"}),
  5. dataType: "json",
  6. contentType : 'application/json;charset=utf-8',
  7. success: function(data){
  8. console.log(data)
  9. $("#postUserMsg").html(data.userName+","+data.password)
  10. }
  11. });

json模式直接绑定自定义复合对象类型

在OrderForm类中有Goods类

@Data
public class OrderForm {
    private String sn;
    private Goods goods;
}
@Data
public class Goods {
    private Long id;
    private String goodsName;
}

增加OrderForm的controller

  1. @PostMapping(value = "/postOrderForm",produces = {"application/json;charset=utf-8"})
  2. public OrderForm postOrderForm(@RequestBody OrderForm orderForm){
  3. return orderForm;
  4. }

jquery的ajax请求

  1. $.ajax({
  2. type: "post",
  3. url: "/postOrderForm",
  4. data: JSON.stringify(
  5. {
  6. "sn":"123456789",
  7. "goods":{"id":10,"goodsName":"华为手机"}
  8. }
  9. ),
  10. dataType: "json",
  11. contentType : 'application/json;charset=utf-8',
  12. success: function(data){
  13. console.log(data)
  14. $("#postOrderFormMsg").html("sn:"+data.sn+",goodsName="+data.goods.goodsName)
  15. }
  16. });

json模式绑定数组类型

在controller中增加List<Integer> 参数

  1. @PostMapping("/postIds")
  2. public List<Integer> postIds(@RequestBody List<Integer> ids){
  3. return ids;
  4. }

jquery的ajax请求

  1. $.ajax({
  2. type: "post",
  3. url: "/postIds",
  4. data: JSON.stringify([1,2,3,4,5]),
  5. dataType: "json",
  6. contentType : 'application/json;charset=utf-8',
  7. success: function(data){
  8. console.log(data)
  9. $("#postIdsMsg").html(data[0]+","+data[1])
  10. }
  11. });

json模式绑定多个对象

1)使用List<E>获取

  1. @PostMapping("/postUsers")
  2. public List<User> postUsers(@RequestBody List<User> users){
  3. return users;
  4. }
  1. $.ajax({
  2. type: "post",
  3. url: "/postUsers",
  4. data: JSON.stringify(
  5. [
  6. {"userName":"admin","password":"123456"},
  7. {"userName":"manager","password":"manager"}
  8. ]),
  9. dataType: "json",
  10. contentType : 'application/json;charset=utf-8',
  11. success: function(data){
  12. console.log(data)
  13. $("#postUsersMsg").html(data[0].userName+","+data[1].userName)
  14. }
  15. });

2)使用Map<String,Object>接收

  1. @PostMapping("/postMap")
  2. public Map<String,Object> postMap(@RequestBody Map<String,Object> map){
  3. return map;
  4. }
  1. $.ajax({
  2. type: "post",
  3. url: "/postMap",
  4. data: JSON.stringify({"name":"小王同学","salary":5000,"age":20}),
  5. dataType: "json",
  6. contentType : 'application/json;charset=utf-8',
  7. success: function(data){
  8. console.log(data)
  9. $("#postMapMsg").html(data.name+","+data.salary+","+data.age)
  10. }
  11. });

代码地址

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/652181
推荐阅读
相关标签
  

闽ICP备14008679号