AJAX: 一种技术统称
全名: Asynchronous JavaScript and XML 即使用 JS 进行异步请
请用 XMLHttpRequest 实现 ajax
function ajax(url, successFn) {
const xhr = new XMLHttpRequest()
xhr.open("GET", url, false)
xhr.onreadystatechange = function () {
// 这里的函数异步执行,可参考之前 JS 基础中的异步模块
if (xhr.readyState == 4) {
if (xhr.status == 200) {
successFn(xhr.responseText)
}
}
}
xhr.send(null)
}
fetch: 一个原生api
fetch 是一个原生 API ,它和 XMLHttpRequest 一个级别。
fetch 和 XMLHttpRequest 的区别
- 写法更加简洁
- 原生支持 promise
面试题:用 fetch 实现一个 ajax
function ajax(url) {
return fetch(url).then(res => res.json())
}
axios: 是第三方库
axios 是一个第三方库,随着 Vue 一起崛起。它和 jquery 一样(jquery 也有 ajax 功能)。
axios 内部可以用 XMLHttpRequest 或者 fetch 实现。