AJAX

133 阅读1分钟

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 实现。