美文网首页
Ajax原生实现

Ajax原生实现

作者: EO_eaf6 | 来源:发表于2020-09-08 16:21 被阅读0次
var xhr=new XMLHttpRequest()//声明一个XMLHttpRequest对象
xhr.onreadystatechange=function(){//请求/响应过程的当前活动阶段
if(xhr.readyState==4){//数据接收完
  if(xhr.status>=200&&xhr.status<=300||xhr.status==304){//响应数据自动填充xhr对象属性(status,statusText,responseText,responseXML)
    console.log(xhr.responseText)
    console.log(xhr.responseXML)
  }else{
    console.log("unsuccessful"+xhr.status)
  }
}
}
xhr.open("post","url",true)//开始请求open(请求类型,url,是否异步请求)
xhr.setRequestHeader("Origin","url")//发起XHR请求时默认发送HTTP头部(Accept等),这里自定义要添加的HTTP头部信息
xhr.send({params:{}})//发送的参数,如果没有参数xhr.send(null),比如某些get请求

onreadystatechange事件:必须定义在open()之前

检测XHR的readyState属性,每次变化触发onreadystatechange事件

readyState值:

0:未初始化,open未调用
1:启动,open已调用,未调用send
2:发送,send已调用,未响应
3:接收,接受部分数据
4:完成,接受全部数据(主要使用)

数据响应后,将属性自动填充到xhr对象:

status:http状态码
statusText:http状态码描述
responseText:响应主体
responseXML:响应类型如果是text/xml或application/xml

status状态码:200成功,如果是304表示没有修改,可以直接使用浏览器缓存版本

open(请求类型,url,是否异步请求)

send({params})发送的参数,如果没有参数xhr.send(null),比如某些get请求

发起XHR请求时默认发送HTTP头部:因此可以自定义头部

默认头部:
Accept:浏览器能够处理的内容类型
Accept-Charset:浏览器能够显示的字符集
Accept-Encoding:浏览器能够处理的压缩编码
Accept-Language:浏览器当前设置的语言
Connection:浏览器与服务器之间的连接(keep-alive长连接)
Host:发出请求所在域
Referer:发出请求页面的URI
User-Agent:浏览器用户代理字段
setRequestHeader(name,value):自定义头部,放在open之前,send之后

相关文章

  • Ajax

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

  • 原生js实现ajax及get post方法

    @拭目以待:首发于原生js实现ajax及get post方法 ajax原生实现,含 post与get方法。原码如下...

  • 原生js实现Ajax

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

  • Ajax原生实现

    onreadystatechange事件:必须定义在open()之前 检测XHR的readyState属性,每次变...

  • Ajax原生实现

    来自百度百科:Ajax 即“Asynchronous Javascript And XML”(异步 JavaScr...

  • 前端基础知识-示例代码

    1、ajax 2、jsonp a、原生实现方式 b、jquery ajax: c、vue.js d、npm包jso...

  • 手写Ajax(JSONP)

    参考:原生 JavaScript 实现 AJAX、JSONP XMLHttpRequest的使用 参考:XMLHt...

  • ,汇总

    1、原生ajax实现步骤,ajax怎么实现跨域? 第一步:获得XMLHttpRequest对象 第二步:设置状态监...

  • ajax和fetch的区别

    一、Ajax Ajax的本质是使用XMLHttpRequest对象来请求数据,下面简单贴下原生js实现: 二、fe...

  • Ajax原生

    // 简单的ajax原生实现 var url = 'https://hq.tigerbrokers.com/fun...

网友评论

      本文标题:Ajax原生实现

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