js 原生手写AJAX

Posted 迪迪的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 原生手写AJAX相关的知识,希望对你有一定的参考价值。

前言:最近在学习react,在练习中模拟一个button通过AJAX向后台发送POST请求,懒得引入AXios,就顺便练习了js原生ajax。

正文:

注:我忽略了IE6及以下版本

  submit(){
    let data = this.props.value //这是要发送的数据
    let xmlHttp = new XMLHttpRequest() //new XMLHttpRequest 对象
    //发送请求
    xmlHttp.open(‘POST‘, ‘ajax_test.asp‘, true) //true是异步请求,false是同步的请求,不建议
    xmlHttp.setRequestHeader(‘name‘, ‘formData‘) //由于是提交form表单,最好set一个http头部。
    xmlHttp.send(data) //只有在POST时候有参数,参数是string类型的数据,get方法并没有。
    
    //接收相应 responseText 和 responseXML 属性
    let response = xmlHttp.responseText
    xmlHttp.onreadystatechange = function () {
      if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
          alert(‘成功‘+ response)
      }
    }
  }

一般项目中,还是使用Axios吧,比较方便。

以上是关于js 原生手写AJAX的主要内容,如果未能解决你的问题,请参考以下文章

原生js写ajax-demo

高级前端:详解手写原生Ajax的实现

原生JavaScript手写Ajax

AJAX相关JS代码片段和部分浏览器模型

redux源码分析通过原生js手写实现redux来理解redux的数据响应

AJAX原生JS代码