网站升级及政务新媒体建设方案,商务网站要怎么设计,免费软件app下载大全,摄影师招聘网站Ajax-06
GET和POST的区别
字面意思不同 GET 是获取意思。想从服务器获取数据#xff0c;用GET方式的请求POST是邮递、邮寄意思。如果提交数据到服务器#xff0c;用POST方式 请求参数位置不同 GET 请求参数会和url拼接到一起#xff0c;形如 api/getbooks?id2age3PO…Ajax-06
GET和POST的区别
字面意思不同 GET 是获取意思。想从服务器获取数据用GET方式的请求POST是邮递、邮寄意思。如果提交数据到服务器用POST方式 请求参数位置不同 GET 请求参数会和url拼接到一起形如 api/getbooks?id2age3POST 的请求参数也叫做提交的数据它不会和url拼接到一起 浏览器工具查看请求参数的位置不一样 GET请求会在url上查看到请求参数在Headers/Query String Parameters也可以查看。POST方式只能在Headers/Form Data位置查看提交的数据 携带的数据量大小不一样 GET方式能够携带少量的数据一般浏览器允许的url的长度是2kPOST方式能够携带的数据量大小没有限制。 上传文件 上传文件只能使用POST方式。 本质的区别 GET方式不会对服务器的数据做出改变POST方式非常可能对服务器的数据做出改变 如果后端同学提供的接口没有使用正确的请求方式我们前端也没有办法。 同步和异步
Ajax 即“Asynchronous Javascript And XML”异步 JavaScript 和 XML。
和异步相对的是同步。
说起JS中的同步和异步需先了解 JS 的单线程。
JS单线程
JS的单线程指的是执行代码的时候只能从前向后从上到下一个一个任务去执行。前面的任务没有执行完后面的任务只能等待。
// 写一个函数函数的执行需要大量的时间
// 1 1 2 3 5 8 13 21 .... 斐波那契数列
// 要求给出一个位置计算得出该位置的数字是什么
function fn (n) {if (n 1 || n 2) {return 1;}return fn(n-1) fn(n-2);
}console.log(111);
console.log( fn(43) );
console.log(222);
console.log(222);
console.log(222);
console.log(222);
console.log(222);同步
同步即同步任务指的就是JS代码需从上到下依次执行前面的代码如果没有执行完毕后面代码的执行只能等待。
特点阻塞后续代码的执行。
异步
异步即异步任务。异步任务的执行比较复杂。比如一段代码包含同步和异步任务具体来说
优先执行同步任务遇到异步任务会把异步任务放到队列中简单的理解就是排队等待同步任务执行完毕会按顺序执行队列中的异步任务多个异步任务之间可以同时执行。哪一个异步任务先结束则优先处理该异步任务的结果。
[
JS中的异步任务列举
定时器事件Ajax请求异步读写文件Node中的知识点查询MySQL数据库Node中的知识点 初次之外都是同步代码 Ajax中的异步
Asynchronous – 异步。
console.log(111);let xhr new XMLHttpRequest();
xhr.onload function () {console.log(333);
};
// xhr.responseType json; // 同步请求不能设置responseType
// open(请求方式 url true)
// 第三个可选参数默认 true表示ajax请求是异步请求
// 如果希望发送一个同步的ajax请求第三个参数设置为false
xhr.open(GET, http://www.liulongbin.top:3006/api/getbooks, false);
xhr.send();console.log(222);虽然可以通过open方法的第三个参数来设置ajax为同步任务但是强烈不建议这么做 jQuery中能不能设置ajax的同步或异步
$.ajax({type: GET,url: xxx,async: true, // 默认true表示异步。如果设置为false则表示同步
});小练习体会一下异步任务的执行
console.log(111);// 异步ajax请求请求书籍数据 ---------------------------------
let xhr new XMLHttpRequest();
xhr.onload function () {console.log(333);
};
xhr.open(GET, http://www.liulongbin.top:3006/api/getbooks);
xhr.send();// 再次发生一个ajax请求 ------------------------------------
let xhr2 new XMLHttpRequest();
xhr2.onload function () {console.log(444);
};
xhr2.open(GET, http://www.liulongbin.top:3006/api/delbook?id1);
xhr2.send();console.log(222);HTTP协议了解
HTTP协议简介
什么是http协议 超文本传输协议 http协议规定了什么 规定了客户端和服务器交互数据的时候数据要遵守的格式。
http请求消息/请求报文
请求报文指的是客户端提交给服务器的全部数据。
请求行 请求方式请求url地址协议及版本 请求头 键值 的形式一次请求可能会有很多请求头Content-Type: ‘application/x-www-form-urlencoded’ / ‘multipart/form-data; xxx’ 提交的数据的一种编码格式查询字符串格式 / FormData格式 User-Agent: ‘’ 体现了当前客户端是什么浏览器、版本是什么版本 请求体 xhr.send(请求体); 客户端提交的数据就是请求体 GET方式没有请求体POST方式 才有请求体
http响应消息/响应报文 响应行 协议及版本http状态码 比如 200http状态描述信息 比如 OK 响应头 Access-Control-Allow-Origin: ‘*’ CORS跨域资源共享服务器设置的响应头允许ajax跨域 Content-Type: ‘application/json; charsetutf-8’ 服务器告诉客户端返回的数据是什么格式的编码是什么编码 $.get(url, data, callback, dataType);
- dataType 表示预期服务器返回的类型jQuery如何知道服务器返回的数据类型呢是根据响应头中的Content-Type判断如果判断服务器返回的是json格式所以jQuery内部就会自动调用JSON.parse()将JSON格式的数据转成JS数组或对象$.get(url, data, function (res) {如果响应头没有没有Content-Type则res 就是字符串手动指定最后一个dataType为json之后res就是JS对象
});响应体 服务器返回的主体内容。就是我们之前所说的服务器返回的数据。
http响应状态码
200OK表示请求成功201Created请求成功一般用于添加资源成功304 Not Modified表示请求的资源没有修改第一次请求400Bad Request语法有误一般来说请求参数写错了或者请求头写错了403Forbidden访问成功了但是服务器告诉你没有权限访问404Not Found请求的资源在服务器上不存在找不到。500服务器内部错误