美文网首页
用原生JS写一个AJAX

用原生JS写一个AJAX

作者: 凉城十月 | 来源:发表于2020-08-19 08:59 被阅读0次

1.什么是AJAX

AJAX(Asynchronous Javascript And XML):异步的JSXML

2.AJAX三部曲

  1. 使用XMLHttpRequest发请求
  2. 服务器返回XML格式的字符串
  3. JS解析XML,并更新布局页面

3.面试必问: 请用原生JS写一个AJAX

let request = new XMLHttpRequest() //创建一个XMLHttpRequest对象
request.open(method , url) 
request.onreadystatechange = function(){  //监听状态变化
  if(request.readyState === 4){ //如果对象已经加载完成
    if(request.status >=200 && request.status <300){ //加载成功
      console.log(request.responseText)
      console.log('success')
    }else if(request.status >= 400){ //加载失败
      console.log(request)
      console.log('fail')
    }
  }
}
request.send(body) //body是请求返回给响应的内容

通常在面试中只需要写上面一部分。

下面是ajax设置请求和获取响应的所有方式:

let request = new XMLHttpRequest()
request.open(method, url) //设置请求第一部分
XMLHttpRequest.setRequestHeader("frank":"18") //设置请求头
request.send(body) //设置请求第四部分,method是GET时,不显示body的内容
request.onreadystatechange = function(){
    if(request.readyState === 4){
        if(request.status >=200 && request.status < 300){
            let headers = request.getAllResponseHeaders()//获取所有的响应头
            let s = request.getResponseHeader('Content-Type') //获取响应头Content-Type的内容
            let text = request.responseText //获取响应的第四部分
            let object = window.JSON.parse(text)
         }
    }
}

请求
设置请求的第一部分:XMLHttpRequest.open( method, url )
设置请求的第二部分:XMLHttpRequest.setRequestHeader( name, value )设置HTTP请求头,在open和send之间使用。
设置请求的第四部分: XMLHttpRequest.send( body ),默认Get第四部分不显示,设置了也没有用。

响应
获取响应的第一部分:

request.status //200
request.statusText //ok

获取响应的第二部分 – 响应头:

request.getAllResponseHeaders() //获取所有的响应头,返回一个字符串
request.getResponseHeader('Content-Type') //获取响应头Content-Type的内容

获取响应的第四部分:

request.responseText //获取响应的第四部分的内容

相关文章

  • 用原生JS写一个AJAX

    1.什么是AJAX AJAX(Asynchronous Javascript And XML):异步的JS和XML...

  • js 原生ajax的封装

    概念 ajax是前端常用技术,今天用原生js封装了一个ajax函数,类似于jquery库的$.ajax()函数,大...

  • 实现一个AJAX

    AJAX是什么鬼 续篇 今天我们给AJAX封装一下 之前写了篇有关用原生JS写jQuery的博客下面是相关主要代码...

  • 原生JS写AJAX

    AJAX MDN_AJAX 手写AJAX的主要四个步骤:1.创建XMLHttpReauest2.处理响应(指定响应...

  • [转]JS原生Ajax代码示例

    文章来源: JS原生Ajax和jQuery的Ajax与代码示例 -- 苏凯勇往直前 JS原生的Ajax其实就是围绕...

  • 2019-04-06 AJAX

    请使用原生 JS 写出一个 AJAX 请求(代码中必须出现 XMLHttpRequest) AJAX AJAX:异...

  • promise封装原生ajax、jqueryAjax、axios

    原生js的ajax封装+promise 将原生js的ajax请求单独封装成一个数据请求的模块, 需要的时候直接调用...

  • 原生js实现Ajax

    原生js实现Ajax方法:var Ajax={get: function(url, fn) { var xhr =...

  • Ajax原生GET ,POST, Ajax+Promise

    最近写单页demo,没有用到前端框架和js库,需要ajax原生get方法 post方法 Ajax 和 Promise异步

  • Ajax Axios

    关于Ajax兼容性问题 前端原生Ajax(get方式),后端使用node.js 前后端代码: 前端原生Ajax(p...

网友评论

      本文标题:用原生JS写一个AJAX

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