Ajax 是一种在无需刷新页面的情况下,能够更新部分网页的技术,利用异步方式与服务器通信,减少了少不必要 的数据传输、时间及降低网络上数据流量。
GET请求
请求内容在URL地址后
// GET 请求
// GET 请求在URL地址后
// 参数(URL地址 , 成功 , 失败)
// Ajax(url ,Win ,Fail)
function Ajax(url ,Win ,Fail){
// 1. 创建XMLHttpRequest对象
// 兼容IE6 XMLHttpRequest是属性 , 不能直接使用 , 需要用一个对象来转接一下
let xhr = window.XMLHttpRequest ? XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
// 2. 与服务器建立连接
// open(请求方式 , url地址 , 请求是否为异步 , 默认为true)
xhr.open('get' ,url ,true); // 发送请求报文
// 3. 等待服务器响应
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
// 成功
if(xhr.status === 200){
// 数据('字符串') , 外部拿到的数据类型为字符串类型
Win(xhr.responseText);
// 在使用时添加
// data = new Function('return' + data)(); 转对象
}
}else{
if(Fail instanceof Function){
Fail();
}
}
}
}
POST请求
请求内容在请求体中
// POST 请求
// POST请求内容在请求体中
function Ajax(url ,data ,Win ,Fail){
// 1. 创建XMLHttpRequest对象
// 兼容IE6
let xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
// 2. 建立连接
// open(POST请求方式 , URL地址 , 请求是否为异步)
xhr.open('POST', url, true);
// 设置请求头
xhr.setRequestHeader('Content-type','Application/x-www-from-urlencoded;charset=utf-8');
xhr.send(data); // 发送请求报文
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status === 200){
if(typeof Win === 'function'){
Win(xhr.responseText);
}
}else{
if(typeof Fail === 'function'){
Fail();
}
}
}
}
}
如有更好的方式,欢迎探讨。