手写原生ajax

1,043 阅读1分钟

了解XMLHttpRequest

1.XMLHttpRequest对象是 AJAX 的主要接口,用于浏览器与服务器之间的通信;

2.XMLHttpRequest本身是一个构造函数,可以使用new命令生成实例,它没有任何参数,且构造出来的对象是一个异步对象,这就说明我们的ajax请求都是异步操作

用js写原生ajax只需要三大步

1.创建一个XMLHttpRequest(异步对象)

2.请求报文--(包含请求行,请求头,请求体)

3.接收响应结果

结构如下:

1.创建一个XMLHttpRequest异步对象

let xhr = XMLHttpRequest()

2.请求报文

(1)请求行--open方法用来设置请求的方式和接口地址

xhr.open('请求方式','接口地址 ')

(2)请求头--一般用来设置编码格式,或者token令牌(如无参数,可不设置编码格式)

xhr.setRequestHeader('Content-Type',' 编码格式 ')

(3)请求体--用来发起请求,有参时需要传递参数(传参时需要注意在请求头设置对应的编码格式),无参时直接调用即可

xhr.send('参数')

3.接收响应结果--因为请求是异步操作,所以我们需要给对象加一个load事件,方便接收服务器响应的结果

xhr.onload = function () {
        //response属性可以获取服务器响应的结果
        console.log(xhr.response)
        //响应的结果是JSON字符串格式,所以需要转一下格式
        console.log(JSON.parse(xhr.response));
      }

代码如下:

      //创建XMLHttpRequest对象
      let xhr = new XMLHttpRequest()
      //请求报文
      //行
      xhr.open('请求方式', '接口地址')
      //头
      xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
      //体
      xhr.send(
        `bookname=${booknameV}&author=${authorV}&publisher=${publisherV}`
      )

      xhr.onload = function () {
        console.log(xhr.response)
        console.log(JSON.parse(xhr.response));
      }

原生ajax只要清楚原理是啥,结构怎么写就可以啦,各位加油冲