这是我参与「第四届青训营 」笔记创作活动的第21天
大家好,这里是前端萌新John。
我所在的组做的项目是低代码平台,我负责的是项目管理的前端页面。这个页面的编写过程中难免会遇到接口连接的问题,比如说:创建新项目时连接到数据库创建新记录、查看项目时从数据库中获取记录等等。那么今天我给大家分享一下我写这些接口时用的方法——原生AJAX。
AJAX全称是Asynchronous Javascript And XML(异步JavaScript和XML),是一种使用现有技术集合的新方法。集合的技术包括: HTML或XHTML、CSS、JS、DOM、XML、XSLT以及最重要的 XML HttpRequest。使用AJAX技术后网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
AJAX工作原理:
了解了基本介绍和工作原理之后,我们来学习一下AJAX的编写。
用AJAX编写请求一般分为五个步骤:
第一步:创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
第二步:发送http请求
xhr.open('GET','url')
这里的发送请求一般分为两种:GET请求和POST请求。
第三步:设置响应HTTP请求状态变化的函数
http请求状态有五种:
1.未初始化状态。在创建完XMLHttpRequest对象时,该对象处于未初始化状态,此时XMLHttpRequest对象的readyState属性值为0。
2.初始化状态。在创建完XMLHttpRequest对象后使用open()方法创建了HTTP请求时,该对象处于初始化状态。此时XMLHttpRequest对象的readyState属性值为1。
3.发送数据状态。在初始化XMLHttpRequest对象后,使用send()方法发送数据时,该对象处于发送数据状态,此时XMLHttpRequest对象的readyState属性值为2。
4.接收数据状态。Web服务器接收完数据并进行处理完毕之后,向客户端传送返回的结果。此时,XMLHttpRequest对象处于接收数据状态,XMLHttpRequest对象的readyState属性值为3。
5.完成状态。XMLHttpRequest对象接收数据完毕后,进入完成状态,此时XMLHttpRequest对象的readyState属性值为4。此时接收完毕后的数据存入在客户端计算机的内存中,可以使用responseText属性或responseXml属性来获取数据。
我们一般设置响应状态值为4时的函数:
xhr.onreadystatechange = function () {
//判断 (服务器返回了所有的结果)
if (xhr.readyState === 4) {
//判断状态响应码
if (xhr.status === 200) {}
}
再通过判断状态响应码来设置事件。
第四步:设置获取服务器返回数据的语句
if (xhr.status === 200) {
console.log(xhr.response);
}
这里选择在控制台显示返回的数据,一般我们会用JSON.parse(xhr.response)将返回的数据转化成一个对象,再通过访问对象的某些值来返回数据,因情况而异。
第五步:发送HTTP请求
xhr.send(JSON.stringify(data));
我们一般会用JSON.stringify方法来将想要传输的参数转化成字符串。
另外,为了避免出现跨域问题,我们一般会设置两个请求头的信息:
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.setRequestHeader('Content-Type', 'application/json');
至此,请求基本完成,各位可以通过具体的响应数据来编写自己的函数,这就是最基本的AJAX请求。
好啦,今天的分享就到这里啦!我们下一篇文章见!