Ajax的基本用法
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>
封装后,直接引入,然后调用对应的方法,是不是简洁很多了呢?
Ajax的基本用法的更多相关文章
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 转载 : Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结 投稿:jingxian 字体:[增加 减小] 类型:转载 时间:2013-11-14我要评论 本文是 ...
- 最简单ajax,$.post()用法
最简单的ajax,$.post()用法 $.post("action.php",{'email':$('#email').val(),'address':$('#address') ...
- ASP.NET MVC Ajax.ActionLink 简单用法
ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进 ...
- (转)Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址, ...
- $.ajax等相关用法
下面是jquery一些方法的相关用法: $.ajax: $.ajax({ type: "GET", url: "url", data: {username:$( ...
- 浅谈AJAX的基本原理和原生AJAX的基础用法
一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结【转载】
详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,d ...
- Ajax + PHP 的用法以及遇见的问题
由于自己是个php小白,所以新知识点都要自己去不断的试验和摸索. 分享下自己用php + ajax交互的用法和问题. 前端代码: $.ajax({ type: "POST", da ...
随机推荐
- HTML定位
定位(position) 定位是一种更加高级的布局手段,通过定位可以将元素摆放到元素的任何位置 使用position属性来设置定位 可选值:static 默认值,元素是静止的没有开启定位 relati ...
- Jenkins开启丢弃旧的构建?你可要小心啊!
玩Devops的小伙伴应该对Jenkins都有了解. Github上16.8k的Star的项目,1500+的构建.发布等自动化插件可供选择,事实上的业界CICD标准领导者. JFrog.Coding等 ...
- P1251 餐巾计划 (网络流)
题意:餐厅每天会需要用Ri块新的餐巾 用完后也会产生Ri块旧的餐巾 每天购买新的餐巾单价p元 每天产出的旧餐巾可以送到快洗部花费每张c1元 在i + v1天可以使用 也可以花费c2元每张送到慢洗部 在 ...
- 【hdu 3579】Hello Kiki(数论--拓展欧几里德 求解同余方程组)
题意:Kiki 有 X 个硬币,已知 N 组这样的信息:X%x=Ai , X/x=Mi (x未知).问满足这些条件的最小的硬币数,也就是最小的正整数 X. 解法:转化一下题意就是 拓展欧几里德求解同余 ...
- 命令提示符CMD下切换用户
工作中遇到需要在windows环境中命令提示符下切换为Guest用户执行程序,类似Linux中的su操作. 操作步骤如下:1.用管理员权限运行cmd.2:执行命令:runas /user:userna ...
- OpenStack Train版-4.安装placement放置服务
安装placement放置服务 创建placement数据库 mysql -uroot CREATE DATABASE placement; GRANT ALL PRIVILEGES ON place ...
- FZU 2129 子序列个数(DP)题解
题意:求子序列种数 思路:dp[i]代表到i的所有种数,把当前i放到末尾,那么转移方程dp[i] = dp[i - 1] + dp[i -1],但是可能存在重复,比如1 2 3 2,在第2位置的时候出 ...
- MS16-032 windows本地提权
试用系统:Tested on x32 Win7, x64 Win8, x64 2k12R2 提权powershell脚本: https://github.com/FuzzySecurity/Power ...
- Ubuntu pppoeconf失败
之前是通过sudo pppoeconf一路yes就可以连通有线网络(dsl和ethernet)的, 系统再次瘫痪后终于进入图形界面, 有线网络丢失, sudo pppoeconf也fail了, 其实加 ...
- Apple Screen Recorder All In One
Apple Screen Recorder All In One Apple macOS 自带录屏 QuickTime Player https://support.apple.com/zh-cn/g ...