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的基本用法的更多相关文章

  1. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  2. Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数:  ...

  3. 转载 : Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结 投稿:jingxian 字体:[增加 减小] 类型:转载 时间:2013-11-14我要评论 本文是 ...

  4. 最简单ajax,$.post()用法

    最简单的ajax,$.post()用法 $.post("action.php",{'email':$('#email').val(),'address':$('#address') ...

  5. ASP.NET MVC Ajax.ActionLink 简单用法

    ASP.NET MVC 项目中,如何使用类似于 iframe 的效果呢?或者说 Ajax 局部刷新,比如下面操作: 我们想要的效果是,点击 About 链接,页面不刷新(地址栏不变),然后下面的内容进 ...

  6. (转)Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址, ...

  7. $.ajax等相关用法

    下面是jquery一些方法的相关用法: $.ajax: $.ajax({ type: "GET", url: "url", data: {username:$( ...

  8. 浅谈AJAX的基本原理和原生AJAX的基础用法

    一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...

  9. Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结【转载】

    详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,d ...

  10. Ajax + PHP 的用法以及遇见的问题

    由于自己是个php小白,所以新知识点都要自己去不断的试验和摸索. 分享下自己用php + ajax交互的用法和问题. 前端代码: $.ajax({ type: "POST", da ...

随机推荐

  1. VXLAN配置实例(华为)

    常用命令总结: bridge-domain bd-id,创建广播域BD,并进入BD视图. description description,配置BD的描述信息. l2 binding vlan vlan ...

  2. python里正则表达式基础及注意事项

    感觉正则匹配是一件很酷的事,用得好的话可以极大地提高编程效率.虽然在html中BeautifulSoup更好用一些,但有时候还是需要使用正则匹配.所以就此做一些学习和使用过程中的笔记. python有 ...

  3. HDU-6703 array (线段树)

    题意 一个长度为n的排列a,\(\forall i\in [1,n] ,1\le a_i \le n\) , m次操作,每次操作: (1,pos),把 \(a_{pos}\) 变为\(a_{pos} ...

  4. Codeforces Round #656 (Div. 3) D. a-Good String

    题目链接:https://codeforces.com/contest/1385/problem/D 题意 一个小写字母串称为 $c-good\ string$,如果至少满足以下条件之一: 字符串长度 ...

  5. hdu3436 Queue-jumpers(Splay)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  6. hdu5371 Hotaru's problem

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission ...

  7. Nginx基础 - 配置静态web服务

    1.静态参数配置1)文件读取高效sendfile Syntax: sendfile on | off; Default: sendfile off; Context: http, server, lo ...

  8. Cortex-M系列内核 启动文件分析

    最近终于闲了下来了准备好好学习下Cortex-M3/M4系列处理器的架构,经过各种资料的折磨也没法对它的整个工作过程能有个完整的认知,最后看到一片博客打算从程序的运行过程开始探究,所以首先就找到了启动 ...

  9. STM32F107移植LWIP

    STM32F107上移植LWIP2.0.3 因为最近需要在STM32F107上实现TCP/IP协议栈,所以网上查了一下,准备使用LWIP,虽然大多数用的是1.4.1版本但是官方说2系大版本修复了1.4 ...

  10. Python+argparse+notebook

    argparse"应用"于jupyter-notebook中 args.xx =======================>> args["xx" ...