先写一串数据
1 {
2 "status": 200,
3 "data": {
4 "name": "web211001",
5 "student": [
6 {
7 "id": 10001,
8 "name": "张三"
9 },
10 {
11 "id": 10001,
12 "name": "李四"
13 },
14 {
15 "id": 10001,
16 "name": "王五"
17 }
18 ]
19 },
20 "msg": "错误信息"
21 }

用原生的Ajax输出数据:

 1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Document</title>
8 <script>
9 //创建步骤
10 window.onload = function () {
11 // 1) 创建 XMLHttpRequest 对象, 也就是创建一个异步调用对象
12 var request = new XMLHttpRequest();
13 // 2) 创建一个新的 HTTP 请求, 并指定该 HTTP 请求的方法、URL 及验证信息
14 request.open("get", "./data.json");
15 // 3) 设置响应 HTTP 请求状态变化的函数
16 request.onreadystatechange = function () {
17 if (request.status === 200 && request.readyState === 4) {
18 //console.log(request.responseText)//获取纯文本
19 // console.log(request.responseXML)
20 // 5) 获取异步调用返回的数据
21 var data =JSON.parse(request.responseText);
22 // console.log(data);
23 // 6) 使用 JavaScript 和 DOM 实现局部刷新
24 if (data.status===200) {
25 var cls =data.data;
26 document.querySelector("h1").innerText=cls.name;
27 }else{
28 console.log(data.msg);
29
30 }
31 }
32 }
33 request.send();
34 // 4) 发送 HTTP 请求
35 }
36 </script>
37 </head>
38
39 <body>
40 <h1></h1>
41 </body>
42
43 </html>

然后用jQuery请求:

 1 <!DOCTYPE html>
2 <html lang="en">
3
4 <head>
5 <meta charset="UTF-8">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Document</title>
8 <script src="./js/jquery-3.3.1.min.js"></script>
9 <script>
10 $(function () {
11 // $.ajax({
12 // method: "get",
13 // url: "./data.json",
14 // // data: { id: 10001 },//请求参数
15 // // data:"id=10001&name=zhangsan",application/x-www-form-urlencoded
16 // contentType: "json",//请求格式 参数的格式
17 // //dataType: "text",//返回数据格式
18 // success: function (data) {
19 // console.log(data);
20 // if (data.status === 200) {
21 // var cls = data.data;
22 // $("legend").text(cls.name);
23 // var students = cls.student;
24 // for (let index = 0; index < students.length; index++) {
25 // const stu = students[index];
26 // $(".data tbody").append("<tr><td>" + stu.id + "</td><td>" + stu.name + "</td></tr>");
27 // }
28 // } else {
29 // console.log(data.msg);
30 // }
31 // },
32 // error: function (res) {
33 // console.log(res);
34
35 // }
36 // }),
37 $.get("./data.json",function(data){
38 if (data.status === 200) {
39 var cls = data.data;
40 $("legend").text(cls.name);
41 var students = cls.student;
42 for (let index = 0; index < students.length; index++) {
43 const stu = students[index];
44 $(".data tbody").append("<tr><td>" + stu.id + "</td><td>" + stu.name + "</td></tr>");
45 }
46 } else {
47 console.log(data.msg);
48 }
49 })
50 })
51 //.$post();
52 </script>
53 </head>
54
55 <body>
56 <legend></legend>
57 <table class="data">
58 <thead>
59 <th>id</th>
60 <th>name</th>
61 </thead>
62 <tbody>
63
64 </tbody>
65 </table>
66 </body>
67
68 </html>

Ajax的两种写法的更多相关文章

  1. Struts2实现ajax的两种方式

    基于Struts2框架下实现Ajax有两种方式,第一种是原声的方式,另外一种是struts2自带的一个插件. js部分调用方式是一样的: JS代码: function testAjax() { var ...

  2. ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

    ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...

  3. EF架构~linq模拟left join的两种写法,性能差之千里!

    回到目录 对于SQL左外连接我想没什么可说的,left join将左表数据都获出来,右表数据如果在左表中不存在,结果为NULL,而对于LINQ来说,要实现left join的效果,也是可以的,在进行j ...

  4. 运算符关键字。数据区别大小写。日期范围。判空的两种写法。NOT IN的两种写法。IN范围可含NULL,但NOT IN值范围不能含NULL。

    比较:>,<,=,>=,<=,<>(!=) 逻辑:AND,OR,NOT 范围:BETWEEN...AND... 范围:IN,NOT IN 判空:IS NULL, I ...

  5. 快速排序partition过程常见的两种写法+快速排序非递归实现

    这里不详细说明快速排序的原理,具体可参考here 快速排序主要是partition的过程,partition最常用有以下两种写法 第一种: int mypartition(vector<int& ...

  6. java 路径分隔符File.separator 以及 路径两种写法"/"和"\\"

    一.File.separator File file=new File(); 这句是新建一个文件.file.separator这个代表系统目录中的间隔符,说白了就是斜线,不过有时候需要双线,有时候是单 ...

  7. iOS中表视图单元格事件用nib和storyboard的两种写法总结

    从ios6开始,苹果公司推出了storyborad技术取代了nib的写法,这样代码量确实少写了很多,也比较简洁.但是,从学习的角度来说,阿堂认为 用nib的写法,虽然多了些代码,但是对于掌握知识和原理 ...

  8. linq和ef关于group by取最大值的两种写法

    LINQ: var temp = from p in db.jj_Credentials group p by p.ProfessionID into g select new { g.Key, Ma ...

  9. ThinkPHP中Widget的两种写法及调用

    Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用 写法一: ArticlWidget.class.php文件: clas ...

  10. es6对象内函数的两种写法

    es6对象内函数一般有两种写法: var person1 = { name: "p1", sayThis() { console.log(this); } }; var perso ...

随机推荐

  1. 关于.net core连接数据库字符串加密查询 (DES加密)

    des加密获取的乱码是相对一致的  所以只需要获取到加密乱码在api后台解密就好 1.创建一个控制台用来获取加密后的乱码 using System; using System.Collections. ...

  2. WCF学习系列---1、新建第一个WCF服务

    一.了解.Net平台下的分布式技术 1.WebService:基于Http协议的Soap模式 2.Remoting :也是一种分布式架构技术,常常用于TCP模式的二进制传输 3.MSMQ:这是一种分布 ...

  3. vue项目搭建(vue2+elementUI+less)

    装node.js然后控制台输入node -v有版本号就是成功了 如是是windows系统建议装个git ,我这边习惯用命令行了 按照vue 和vue-cli vue-cli是一个vue的脚手架 按照提 ...

  4. Docker CLI docker buildx build 常用命令

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化.Docker是内核 ...

  5. synchronized与CAS

    参考:java3y<对线面试官> synchronized synchronized是⼀种互斥锁,⼀次只能允许⼀个线程进⼊被锁住的代码块synchronized是Java的⼀个关键字,它能 ...

  6. vue2的响应式原理

    响应式的话,主要指的是这个状态改变以后,视图要去主动更新 这个过程,vue是通过两个步骤来实现的 1 数据的劫持 数据劫持也叫做数据拦截,通过Object.defineProperty来把对象中的每一 ...

  7. smartgit 安装

    下载 https://www.syntevo.com/smartgit/download/ 破解删掉

  8. uniapp 样式记录

    flex https://uniapp.dcloud.io/nvue-css display: flex;/* 容器布局 */ flex:1; overflow: scroll;/* 容器内滚动条 * ...

  9. openssl的自签名证书不被信任问题

    1.不同的浏览器安全策略不同 1.1谷歌系的会提示没有绑定域名. 此服务器无法证实它就是 192.168.0.127 - 它的安全证书没有指定主题备用名称(Subject Alternative Na ...

  10. agl---atumotive grade linux开篇

    linux本人也玩过,捯饬过双系统win7+Ubuntu,搞过虚拟机跑fedora,做开发,除了觉得酷,能接触到整个程序开发.编译.链接,程序效率高外,没觉得啥好,关键生态也无丰富,我这种伪码农,也就 ...