浏览量:8937次
一、AJAX是什么
AJAX全称(Async Javascript and XML)
即异步的JavaScript 和XML,是一种设立交互式网页使用的网页垦荒技艺,可以在不从头加载整个网页的环境下,与效能器换取数据,而且更新局部网页
Ajax的事理容易来说经过XmlHttpRequest对象来向处事器发异步求告,从就事器失去数据,往后用JavaScript来哄骗DOM而更新页面
下面举个例子:
领导想找小李汇报一下工作,就寄与秘书去叫小李,自己就接着做别的事情,直到秘书演讲他小李也曾到了,着末小李跟领导报告请示任务
Ajax苦求数据流程与“向导想找小李报告请示一下工作”雷同,上述秘书就相当于XMLHtt网站建设pRequest对象,导游相当于涉猎器,相应数据相当于小李
涉猎器梗概发送HTTP恳请后,接着做其他事情,等收到XHR返返来的数据再发展垄断
二、AJAX实现进程
实现 Ajax异步交互须要效力器逻辑进行配合,需求完成以下轨范:
建树 Ajax的中心对象 XMLHttpRequest对象
经由过程 XMLHttpRequest 对象的 open 方法与管事端建立邻接
构建乞请所需的数据模式,并通过XMLHttpRequest 对象的 send 门径发送给效劳器端
经由过程 XMLHttpRequest 对象供应的 onreadystatechange 事情监听管事器端你的通信外形
蒙受并处置惩罚干事端向客户端网站建设响应的数据下场
将处理究竟更新到 HTML页面中
构建XMLHttpRequest对象
颠末XMLHttpRequest 组织函数用于初始化一个 XMLHttpRequest 实例对象
const xhr=new XMLHttpRequest;
与管事器建立毗邻
经由 XMLHttpRequest 对象的 open 法子与效劳器建立联接
xhr.open(method, url, [async][, user][, password])
参数阐明:
method:展现今朝的乞请方式,思空见贯的有GET、POST
url:效劳端地址
async:布尔值,展现是否异步执行操作,默以为true
user: 可选的用户名用于网站建设认证用处;默许为`null
password: 可选的明码用于认证用途,默认为`null
给做事端发送数据
经由历程 XMLHttpRequest 对象的 send 办法,将客户端页面的数据发送给效能端
xhr.send([body])
body: 在 XHR 求告中要发送的数据体,要是不传递数据则为 null
假定使用GET乞求发送数据的时辰,需求把稳下列:
将恳求数据增多到open方法中的url所在中
发送恳请数据中的send法子中参数配置为null
绑定onreadystatechange事宜
onreadystatechange 事情用于监听效力器端的通信形态,首要监听的属性为XMLHttpRequest网站建设.readyState ,
对付XMLHttpRequest.readyState属性有五个形状,如下图显示
只要 readyState属性值一更换,就会触发一次 readystatechange 事项
XMLHttpRequest.responseText属性用于接管效力器真个相应到底
举个例子:
const request=new XMLHttpRequest
request.onreadystatechange=function(e){
if(request.readyState===4){ // 整个恳请过程完毕
if(request.status >=200 && request.status <=网站建设300){
console.log(request.responseText) // 效劳端前往的结果
}else if(request.status >=400){
console.log("纰谬新闻:" + request.status)
}
}
}
request.open('POST','http://xxxx')
request.send
三、AJAX封装
通过上面对XMLHttpRequest对象的相识,下面来封装一个简单的ajax苦求
//封装一个ajax央求
function ajax(options) {
//竖立XMLHttpRequest对象
const xhr=new XMLHttpRequest网站建设
//初始化参数的内容
options=options || {}
options.type=(options.type || 'GET').toUpperCase
options.dataType=options.dataType || 'json'
const params=options.data
//发送请求
if (options.type==='GET') {
xhr.open('GET', options.url + '?' + params, true)
xhr.send(null)
} else if (options.type==='POST') {
xhr.open('POST', optio网站建设ns.url, true)
xhr.send(params)
//领受求告
xhr.onreadystatechange=function {
if (xhr.readyState===4) {
let status=xhr.status
if (status >=200 && status < 300) {
options.success && options.success(xhr.responseText, xhr.responseXML)
} else {
options.fail && options.fail(status)
}
}
}
}
使用方式下列
ajax({
type: 'post',
dataType:网站建设 'json',
data: {},
url: 'https://xxxx',
success: function(text,xml){//乞请告捷后的回调函数
console.log(text)
},
fail: function(status){央求失利后的回调函数
console.log(status)
}
})
--The End--
长武做网站就找春秋科技,春秋科技是一家专注于长武网站建设、长武网站设计、长武网站制作、长武做网站、长武建网站等服务的长武网站建设公司。已成功帮助10000多家企业实现网上盈利,为企业提供长武网站建设一站式服务。
24小时服务热线:13733108860
[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【】,我们在确认后,会立即删除,保证您的版权。