前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot|前端发ajax请求到后台Controller及常见的坑

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

作者头像
微笑的小小刀
发布2019-12-19 14:46:46
6.3K0
发布2019-12-19 14:46:46
举报
文章被收录于专栏:java技术大本营

前端发ajax请求

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

引入web相关的依赖

前端的模板选用的是thymeleaf

代码语言:javascript
复制
代码语言:javascript
复制
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中添加:

代码语言:javascript
复制
代码语言:javascript
复制
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/js/jquery-3.4.1.min.js"></script>
</head>
代码语言:javascript
复制

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

代码语言:javascript
复制
代码语言:javascript
复制
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
代码语言:javascript
复制

编写ajax请求

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

代码语言:javascript
复制
代码语言:javascript
复制
$.ajax({
        url:'/test/testAjax1',
        type:'get',
        async:false,
        contentType:'application/json',
        dataType:'json',
        success:function (data) {
            console.log(data)
        }
    })
代码语言:javascript
复制

url:请求后台的url type:标明是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接收请求

代码语言:javascript
复制
代码语言:javascript
复制
/**
 * @Author https://www.javastudy.cloud
 * @CreateTime 2019/11/8
 **/
@RestController
public class TestController {
    @RequestMapping("test/testAjax1")
    public Map testAjax1(){
        Map<String,String> map = new HashMap<>();
        map.put("aaa","bbb");
        return map;
    }
    
}
代码语言:javascript
复制

结果输出

DEMO总评

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

可添加小刀微信获取源码

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引入web相关的依赖
  • 引入jquery
  • 编写ajax请求
  • Controller接收请求
  • 结果输出
  • DEMO总评
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档