ajax datatype_springboot|前端发ajax请求到后台Controller及常见的坑

前端发ajax请求

这块是web的基础,发web请求大概需要以下几步1.引用web相关的依赖2.前端页面引入jquery.js3.编写ajax请求4.编写对应的Controller

引入web相关的依赖

前端的模板选用的是thymeleaf

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'org.springframework.boot:spring-boot-starter-web'

引入jquery

jquery可以通过本地的方式引入,也可以通过cdn的方式引入本地引入:先下载jquery.js到static/js目录html页面head中添加:

<head>    <meta charset="UTF-8">    <title>Titletitle>    <script src="/static/js/jquery-3.4.1.min.js">script>head>

如果是CDN话,则不用下载jquery , 直接在head中引入

<head>    <meta charset="UTF-8">    <title>Titletitle>    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js">script>head>

编写ajax请求

参考文档:https://api.jquery.com/jQuery.ajax/这里只展示一些常用的参数

$.ajax({        url:'/test/testAjax1',        type:'get',        async:false,        contentType:'application/json',        dataType:'json',        success:function (data) {            console.log(data)        }    })

url:请求后台的urltype:标明是get还是post请求async:是异步的还是同步的,这里有个坑,有时候下拉框用ajax去请求数据,这里默认是异步的,结果数据还没回来,下拉框就开始渲染,然后发现下拉没有数据contentType: 前端的参数格式dataType:接口返回的数据的格式,一般来说,经常不写,让系统自己去判定这里ContentType的值一般来说有两种取值, 默认是application/x-www-form-urlencoded; charset=UTF-8在实际开发中,经常会改成如上的application/json这里改了之后,Controller中也要对应着改入参方式,详情可参考这篇DEMO:springboot|Controller接收处理GET,POST请求入参https://www.javastudy.cloud/articles/2019/11/03/1572752115551.html

Controller接收请求

/** * @Author https://www.javastudy.cloud * @CreateTime 2019/11/8 **/@RestControllerpublic class TestController {    @RequestMapping("test/testAjax1")    public Map testAjax1(){        Mapmap = new HashMap<>();        map.put("aaa","bbb");        return map;    }    }

结果输出

c14e68af78d274c94b2875e7bd7a6d30.png

DEMO总评

ajax请求是web开发中的第一步,我们可以按Http请求来理解他, 有相应的header,有相关的各种type , 其中最麻烦的是要和后端Controller的参数对应关系,稍不留神对应错了后端就收不了参数,或者值没法返回,要多看文档,注意默认值.

可添加小刀微信获取源码

13582e645bbb9e649b47babccf077f63.png

7b4b95ae44f44f838d16a9a62624bdd2.png往期热文springboot|springboot配置Filter过滤器springboot|springboot配置拦截器docker|docker 安装zookeeperjava基础|自定义java线程池你点 在看的样子真好看:)~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端使用ajax送json到后端springboot的步骤如下: 1. 创建一个html页面,添加一个按钮或表单,用于触ajax请求。 2. 在html页面中引入jquery或其他ajax库,以便能够使用ajax方法请求。 3. 编写ajax请求代码,包括请求的URL、请求方法、请求头、请求体等参数,并指定请求成功或失败后的回调函数。 4. 在后端springboot项目中创建一个controller,用于接收前端送的json数据。 5. 在controller中编写方法,用于处理接收到的json数据,并返回处理结果。 6. 在springboot项目中启动应用程序,并打开html页面,点击按钮或提交表单,ajax请求。 7. 后端springboot应用程序接收到请求后,执行对应的controller方法,处理json数据,返回处理结果。 下面是一个简单的示例代码,演示了如何使用ajax送json到后端springboot: 前端html代码: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>AJAX送JSON数据到后端Spring Boot</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> </head> <body> <h1>AJAX送JSON数据到后端Spring Boot</h1> <input type="button" value="送JSON数据" onclick="sendJson()"> <script type="text/javascript"> function sendJson() { var json = { "name": "张三", "age": 18, "gender": "男" }; $.ajax({ url: "/json", type: "POST", contentType: "application/json", data: JSON.stringify(json), dataType: "json", success: function(data) { alert("处理结果:" + data.result); }, error: function() { alert("请求失败!"); } }); } </script> </body> </html> ``` 前端ajax请求代码: ``` function sendJson() { var json = { "name": "张三", "age": 18, "gender": "男" }; $.ajax({ url: "/json", type: "POST", contentType: "application/json", data: JSON.stringify(json), dataType: "json", success: function(data) { alert("处理结果:" + data.result); }, error: function() { alert("请求失败!"); } }); } ``` 后端springboot的controller代码: ``` @RestController public class JsonController { @PostMapping("/json") public Map<String, Object> handleJson(@RequestBody Map<String, Object> json) { Map<String, Object> result = new HashMap<>(); // 处理json数据 result.put("result", "处理成功"); return result; } } ``` 在这个示例中,前端送了一个包含name、age和gender三个属性的json数据到后端springboot应用程序的/json接口。后端接收到json数据后,执行了handleJson方法,处理了json数据,并返回了一个包含result属性的json数据,前端收到响应后,弹出处理结果的提示框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值