ajax含义:async javascript and XML;是异步的JS和XML;是实现页面局部刷新的技术(是一门独立的技术)。
为什么在js内能够使用呢?是因为ajax在浏览器内内置了一个核心对象,--》XMLHttpRequest(低版本的IE浏览器没有)
步骤(背用):
1.实例化核心对象
let xhrs = new XMLHttpRequest(); //对核心对象进行实例化
//有5个参数--》ajax是异步的,
xhrs.open(请求方式,请求链接地址,同步/异步,用户名,密码)
3.发送请求
xhrs.send(请求参数),
4.获取ajax返回的数据--监听
xhrs.onreadystatechange = function() {
// 状态值=4表示成功
// console.log('改变', xhrs.readyState);
if (xhr.readystate == 4 && xhr.status == 200) {
//JSON.parse是字符串转为对象或数组的其他形式。 JSON.stringIfy是其他形式 去转换为字符串
console.log(JSON.parse(xhr.response).message);
}
}
axios 封装实例: axios fetch 基于ajax和promise进行的封装
function axios(params) {
//和上面
return new Promise((resolve, reject) => {
let xhrs = new XMLHttpRequest(); //对核心对象进行实例化
// 2.建立链接
// 有5个参数
xhrs.open(params, methods, params, url)
xhrs.send(params, data)
xhrs.onreadystatechange = function() {
// 状态值=4表示成功 // console.log('改变', xhrs.readyState);
if (xhr.readystate == 4 && xhr.status == 200) {
// JSON.parse是 console.log(JSON.parse(xhr.response).message);
resolve(JSON.parse(xhr.response))
}
}
})
}
//调用axios方法:
axios({
methods: 'get',
url: 'http://localhost:3000/api/get',
}).then(res => {
console.log(res);
})