自己实现 Ajax

作者: 写代码的海怪 | 来源:发表于2019-01-16 00:47 被阅读18次

用不同方法来实现 Ajax 基本是前端的经典考题了,这篇文章总结了2种常用的实现 Ajax 方法,分别是原生 JS 实现和Promise 实现。

原生 JS 实现

原生 JS 实现 Ajax 算法问得最多的了,所以基本都要把 4 个步骤背下来。

  1. 创建 XMLHttpRequest 对象。
  2. 监听 readystatechange 事件(接收 response 事件)。
  3. 使用 opensetRequestHeader 来配置请求。
  4. 发送请求,如果有请求内容,则以字符串形式发送。
mybutton.addEventListener('click', () => {
    // 声明 XMLHttpRequest
    let request = new XMLHttpRequest()

    // 监听
    request.onreadystatechange = () => {
        // 判断 readyState
        if (request.readyState === 4) {
            // 判断响应码
            if (request.status >= 200 && request.status < 300) {
                // 获取响应内容
                let string = request.responseText
                let object = JSON.parse(string)
               
                // 打印相关信息
                console.log(object)
                console.log('Response Header', request.getAllResponseHeaders())
                console.log('Content-Type', request.getResponseHeader('Content-Type'))
                console.log('Status Text', request.statusText)
            }
            // 打印错误
            else if (request.status >= 400) {
                console.log('请求失败')
            }
        }
    }

    // 配置 request
    request.open('POST', '/xxx')

    // 配置请求头信息
    request.setRequestHeader("Content-Type", "x-www-form-urlencoded")

    // 发送请求(发送请求内容)
    request.send('请求的内容')
})

相关文章

  • 自己实现AJAX

    1. JS操作请求与响应 1.1 JS 可以设置任意请求 header 吗? 可以 第一部分 re...

  • 自己实现AJAX

    如何发请求? 用form可以发请求,但是会刷新页面或新开页面;用a可以发get请求,但是也会刷新页面或新开页面;用...

  • 自己实现 Ajax

    用不同方法来实现 Ajax 基本是前端的经典考题了,这篇文章总结了2种常用的实现 Ajax 方法,分别是原生 JS...

  • (转载) 自己实现AJAX

    自己实现AJAX 原文链接:https://blog.csdn.net/grapelove01/article/d...

  • Ajax异步请求[17.7.10]

    Ajax异步请求 Ajax全称为Asynchronous Javascript and XML。通过Ajax实现了...

  • JavaScript-Ajax原理

    一.JavaScript单线程 二.实现Ajax 1.XMlHttpRequest实现Ajax 2.jQuery实...

  • JavaScript设计模式---0003工厂模式----抽象工

    抽象工厂模式 假设需要实现一个创建ajax的工厂 实现抽象工厂 实现自己的工厂

  • ajax

    ajax() ajax的实现 $.ajax({ //发送请求地址(默认当前页地址) url:String, //请...

  • 2018-01-19 关于房屋列表页的实现方法

    1. 首先使用AJAX 整个页面获取数据的方式是Ajax实现的,在Joomla中,Ajax的实现方法是在modul...

  • Ajax

    标签: Ajax 正文 一、实现一个原生Ajax 二、Ajax状态 三、将原生的 ajax 封装成 promise

网友评论

    本文标题:自己实现 Ajax

    本文链接:https://www.haomeiwen.com/subject/spqpdqtx.html