问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

XMLHttpRequest 介绍

创作时间:
作者:
@小白创作中心

XMLHttpRequest 介绍

引用
1
来源
1.
https://m.imooc.com/wiki/ajaxlesson-xmlintro

XMLHttpRequest是Ajax的核心技术,它使得浏览器可以在不刷新页面的情况下与服务器进行数据交互。本文将详细介绍XMLHttpRequest的由来、定义、属性和方法,并提供兼容性表格,帮助读者全面了解这一重要的前端开发技术。

XMLHttpRequest的由来

首先倒推到1999年间,这一年,Microsoft在Internet Explorer 5.0中首次使用了一个技术。通过这个技术,浏览器页面可以不用通过页面重载或者表单提交,就可以将信息发送到服务器,完成信息的交互。这个技术就是ActiveX对象,即XMLHTTP。

这个技术发布之后,得到了业界的一致欢迎。直到2000年的时候,基本成为了一种标准。同时,Mozilla、Opera等也相继实现了一种具有相同接口的原生对象,即我们现在所看到的XMLHttpRequest。后来,XMLHttpRequest也成为了这个技术的名称。

什么是XMLHttpRequest

XMLHttpRequest实质上就是一种具有发送异步请求功能的技术,是一个可以在JavaScript、JScript、VBScript等脚本语言中使用的API对象。它可以通过异步发送HTTP请求,完成前后端的交互。在我们的客户端界面上,无刷新交互只是一种表现,而异步发送请求才是这个技术的根本。

目前为止,XMLHttpRequest早已成为正式的规范。并且在大多数浏览器上都得到了支持。

XMLHttpRequest的属性和方法

接下来我们会对XMLHttpRequest的属性和方法做一个简单的展开学习,主要是认识一下XMLHttpRequest到底提供了一些什么功能属性。为之后的学习做一个基本的概念性了解。

XMLHttpRequest的属性

标准属性

属性名
备注
onreadystatechange
当readyState发生变化时候触发
readyState
请求状态码。
response
返回一个Blob、ArrayBuffer、Document或DOMString。类型受responseType影响。
responseText
返回一个DOMString。请求不成功或者未发送情况下返回null。
responseType
响应类型。
responseURL
返回序列化URL,URL为空则返回空字符串。
responseXML
返回一个Document。请求未发送、不成功或者解析失败,返回null。
status
请求的响应状态。
statusText
返回一个DomString,包含http响应状态。
timeout
超时。定义一个最大的请求响应时间。
ontimeout
超时调用事件。
upload
上传过程。
withCredentials
指定跨域请求是否带有授权信息。

非标准属性

属性名
备注
channel
一个nsIChannel,当执行请求时,对象使用的通道。
mozAnon
布尔值。为true情况下,请求将在没有身份验证header头和cookie的情况下发送。
mozSystem
布尔值。为true情况下,请求将不强制执行同源策略。
mozBackgroundRequest
布尔值。指示是否是服务器的请求。

XMLHttpRequest的方法

标准方法

方法名
备注
abort
中止请求
getAllResponseHeaders
返回所有用CRLF分隔的响应头的字符串的形式。没有收到响应则返回null。
getResponseHeader
返回指定响应头的字符串。未收到响应,或者响应不存在该报头,返回null。
open
初始化一个请求。
overrideMimeType
重写MIME类型。
send
发送请求。
setRequestHeader
设置HTTP请求头。

非标准方法

方法名
备注
openRequest
初始化一个请求。

XMLHttpRequest的事件

事件名
备注
abort
停止请求的时候触发。
error
当请求发生错误的时候触发。
load
请求成功完成的时候触发。
loadend
请求结束的时候触发。
loadstart
收到响应数据的时候触发。
progress
接收数据开始周期时候触发。
timeout
超时未接收到数据的时候触发。

兼容性

即便XMLHttpRequest在绝大多数浏览器都得到支持,但仍有部分对象属性和方法不被少数浏览器所兼容。我们可以通过Can I use进行查阅。下面给出一个截至当前为止XMLHttpRequest在各浏览器上的兼容性表格进行参照。

小结

  • XMLHttpRequest现在已经成为了标准,并且被绝大部分的浏览器所支持,兼容性好。
  • XMLHttpRequest拥有丰富的属性、方法及事件调用,满足我们对异步请求的大部分需求。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号