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. (22)zip命令:压缩文件或目录&&unzip命令:解压zip文件

    1.zip 命令基本格式如下: [root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表 注意,zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以便解压缩 ...

  2. SSL与HTTPS协议

    1.SSL 1.1 什么是SSL SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及 ...

  3. sentinel流量控制和熔断降级执行流程之源码分析

    前言: sentinel是阿里针对服务流量控制.熔断降级的框架,如何使用官方都有很详细的文档,下载它的源码包 里面对各大主流框都做了适配按理,本系列文章目的 主要通过源码分析sentinel流量控制和 ...

  4. HDU-6599 I Love Palindrome String(回文自动机+字符串hash)

    题目链接 题意:给定一个字符串\(|S|\le 3\times 10^5\) 对于每个 \(i\in [1,|S|]\) 求有多少子串\(s_ls_{l+1}\cdots s_r\)满足下面条件 \( ...

  5. DFS——求图的连通性问题

    DFS作为一个竞赛必学的一个知识点,怎么说我都得写一下 遍历就相当于爆搜,只不过是搜的方式比较规整罢了. 深度优先遍历:为了避免重复访问某个顶点,可以设一个标志数组vis[i],未访问时值为0,访问一 ...

  6. bzoj3626: [LNOI2014]LCA (树链剖分+离线线段树)

    Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先. ...

  7. hdu4920Matrix multiplication (矩阵,bitset)

    Problem Description Given two matrices A and B of size n×n, find the product of them. bobo hates big ...

  8. k8s-0-集群

    Docker回顾 docker容器封装应用程序好处 内核在3.8以上,才能完整使用docker隔离功能(所有centos6不推荐用) Docker容器化封装应用程序缺点 容器编排工具有哪些 一: K8 ...

  9. 数位dp【模板 + 老年康复】

    学习博客: 戳这里 戳这里 "在信息学竞赛中,有这样一类问题:求给定区间中,满足给定条件的某个D 进制数或此类数的数量.所求的限定条件往往与数位有关,例如数位之和.指定数码个数.数的大小顺序 ...

  10. printf,sprintf,fprintf的区别与联系

    在写代码过程中总会遇到printf和sprintf,既然这两个都遇到了,那么不妨再加一个fprintf吧. 他们三个都是将格式化字符串输出,区别就是他们输出的目标不一样. (1).printf,是把格 ...