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. 区域之间PA、FortiGate内网互联专线、IPSec互备方案

    网络拓扑: 现状描述: 办公区和IDC之间有防火墙互联的点对点专线实现内网互通,现需要两地防火墙构建IPSec VPN作为专线的热备链路. 解决方案: 飞塔侧 1.按照阶段一.阶段二建立IPSec V ...

  2. HashMap 和 Hashtable两者的区别以和解释

    HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的,也是在各种 Java 面试场合中必须会问到的. 但你对这两者的区别了解有多少呢? 现在,栈长我给大家总结一下,或许有你不明 ...

  3. 用werkzeug实现一个简单的python web框架

    使用工具 Pycharm , Navicat , WebStorm等 使用库 Werkzeug用于实现框架的底层支撑,pymysql用于实现ORM,jinja2用于模板支持,json用于返回json数 ...

  4. Educational Codeforces Round 97 (Rated for Div. 2)【ABCD】

    比赛链接:https://codeforces.com/contest/1437 A. Marketing Scheme 题解 令 \(l = \frac{a}{2}\),那么如果 \(r < ...

  5. AtCoder Beginner Contest 174

    第一次 ak ABC,纪念一下. 比赛链接:https://atcoder.jp/contests/abc174 A - Air Conditioner #include <bits/stdc+ ...

  6. Educational Codeforces Round 86 (Div. 2)

    比赛链接:https://codeforces.com/contest/1342 A - Road To Zero 题意 有两个非负整数 x, y 以及两种操作: 支付 a 点代价使其中一个数加一或减 ...

  7. 牛客编程巅峰赛S1第3场 - 青铜&白银 A.位数求和

    题意:求所有\(n\)位数每位之和等于\(m\)的数的和. 题解:数据范围非常小,我们可以直接暴力枚举\(t\)到\(10*t\)的所有数字,逐位分解判断即可. 代码: class Solution ...

  8. GoAccess 监控工具

    GoAccess 基本概述 简易的统计访问量的软件,官方安装教程 GoAccess 安装 # 下载包 [root@web01 ~]# wget http://tar.goaccess.io/goacc ...

  9. Linux虚拟机封装成模板

    对安装在VMware上的CentOS7.X进行封装,是为了后续的实验环境需要,可以批量去生成Linux系统.通过虚拟机模版来创建一台CentOS系统,跟原来机器一样,去掉了唯一性,而通过克隆出来的虚拟 ...

  10. 智能社讲解js基础

    一,Javascript的组成ECMAScript:翻译,核心,解释器,DOM:文档对象模型,Document Object Model 操作HTML的能力,document对象BOM:浏览器对象模型 ...