Ajax的基本用法
本文共 4,884 字,预计阅读时间 16 分钟
1.介绍
2.基本用法
2.1原生写法
$.ajax({ url: url, //是否是异步请求,默认是 // async: false, //请求方式,默认是get //type:'get', //数据请求的类型,默认是application/x-www-form-urlencoded,如果设置为application/json; charset=utf-8,则需要把参数转为json字符串 // contentType: "application/json; charset=utf-8", //传递的参数 data: {}, //成功的回调 success(data) { console.log(data) }, //失败的回调 error() { console.log("请求数据失败") } })
1)get请求测试
$.ajax({ url: "https://autumnfish.cn/api/joke/list", data: { num: 5 }, //成功的回调 success(data) { console.log(data) }, //失败的回调 error() { console.log("请求数据失败") } })
2)post请求测试
$.ajax({ url: "https://autumnfish.cn/api/user/reg", type:'post', contentType: "application/json; charset=utf-8", data:JSON.stringify({ username:123456 }), //成功的回调 success(data) { console.log(data) }, //失败的回调 error() { console.log("请求数据失败") } })
这里指定了请求的数据类型,然后把请求的参数转为json字符串,后台需要使用@RequestBody接收。
2.2get的简写方式
$.get("https://autumnfish.cn/api/joke/list",{num: 5},function(data){ console.log(data) })
2.3post的简写方式
$.post("http://localhost:8001/test",{username: 123456},function(data){ console.log(data) })
这种方式,传递给后台后,必须使用String username来接收,如果要用@RequestBody接收,那就只能使用$.ajax。具体参考下面的说明。
3.post请求前后台传值/接收问题
3.1默认方式
默认情况下,contentType值是"application/x-www-form-urlencoded"
$.ajax({ url: "http://localhost:8001/test1", type: 'post', data: { name:'张三', age:20 }, //成功的回调 success(data) { console.log(data) }, //失败的回调 error() { console.log("请求数据失败") } })
传递参数后,后台直接根据参数进行接收即可,在参数前面加@RequestParam也可以。
@PostMapping("/test1") public void test(String name,Integer age){ System.out.println(name+","+age); }
3.2修改contentType
如果后台需要通过@RequestBody接收,那么使用默认的方式是不行的,需要修改contentType的值是"application/json; charset=utf-8",另外在传递时参数要转为json字符串。
$.ajax({ url: "http://localhost:8001/test2", type: 'post', contentType: "application/json; charset=utf-8", data: JSON.stringify({ name:'张三', age:20 }), //成功的回调 success(data) { console.log(data) }, //失败的回调 error() { console.log("请求数据失败") } })
后台接收
@PostMapping("/test2") public void test2(@RequestBody User user){ System.out.println(user); }
4.封装ajax
对于传递json字符串类型的,每次传递的非常麻烦,可以对这些方法进一步封装,文件名是request.js,内容如下:
//对ajax的封装 //get请求 function get(url, data, callback, async = true) { $.ajax({ url, async, type: 'get', data, //成功的回调 success(res) { callback(res) }, //失败的回调 error() { console.log("发送请求时出现错误!") } }) } //post请求,默认方法 function post(url, data, callback, async = true) { $.ajax({ url, async, type: 'post', data, //成功的回调 success(res) { callback(res) }, //失败的回调 error() { console.log("发送请求时出现错误!") } }) } //post请求,传递json字符串,后台使用@RequestBody接收 function postJson(url, data, callback, async = true) { $.ajax({ url, async, type: 'post', contentType: "application/json; charset=utf-8", data: JSON.stringify(data), //成功的回调 success(res) { callback(res) }, //失败的回调 error() { console.log("发送请求时出现错误!") } }) }
在html中引入并使用。注意,必须先引入jquery,再引入request
<script src="jquery.min.js"></script> <script src="reuqest.js"></script> <script> get("https://autumnfish.cn/api/joke/list",{num: 5},function(data){ console.log(data) }) postJson("https://autumnfish.cn/api/user/reg",{username: 123456},function(data){ console.log(data) }) </script>
封装后,直接引入,然后调用对应的方法,是不是简洁很多了呢?
就是这么简单,你学废了吗?感觉有用的话,给笔者点个赞吧 !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!