Ajax实例–详细代码注释【GET 和 post请求】【Ajax多次请求 只发送 最后一次请求】【请求超时与网络异常处理】…
MDN中使用XMLHttpRequest
官网中响应的属性和方法
- 很全面,很不人话,哈哈哈
文章目录
一、XMLHttpRequest中常用的方法:
1-1 open():
用于设置进行异步请求目标的URL、请求方法以及其他参数信息。
1、函数原型:open("method","URL",asyncFlag)
- 参数说明:
- method:用于指定请求类型是“GET”还是“POST“
- URL:用于指定请求地址,可以是绝对地址也可以是相对地址,还可以传递查询字符串。
- asyncFlag:用于指定请求方式是异步还是同步请求,异步请求是true,同步请求是false
2、 例:XML_HttpRequest.open("GET","reg.jsp",true);
1-2 send()
用于向服务器发送请求。如果请求是异步,该方法将立即返回,否则将等到接收到响应为止。
1、 函数原型:send(content)
- 参数说明:
- centent:指定发送的数据,如果没有参数需要传递,则设置为null。
2、 例:XML_HttpRequest.send(null); //不包含任何参数的请求
1-3 setRequestHeader()
用来为请求的HTTP头设置值
1、 函数原型:setRequestHeader("header","value")
-
header:用来指定HTTP头
-
value:用来为指定的HTTP头设置的值
2、 例:XML_HttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //将Content-Type请求的头的值设置为"application/x-www-form-urlencoded"
3、 说明:setRequestHeader()方法必须在调用了open()方法之后才能调用。
1-4 abort()
用来停止或放弃当前异步请求
1-5 getResponseHeader()
以字符串的形式返回指定的HTTP响应头信息
1、 函数原型:getResponseHeader("HeaderLabel")
- HeaderLabel:用来指定HTTP头,包括Server、Content-Type和Date等
2、 例:XML_HttpResquest.getResponseHeader("Content-Type"); //获取HTTP头Content-Type的值,返回的结果为“text/html;charset=GB18030”
1-6 getAllResponseHeaders()
该方法将以字符串的形式返回完整的HTTP头信息,包括Server、Date、Content-Type和Content-Length。
- 函数原型:getAllResponseHeaders()
二、XMLHttpRequest常用的属性
2-1 onreadystatechange:
用来指定状态改变时所触发的事件处理器。
-
在Ajax中改变状态时都会触发一个JavaScript函数处理器。
-
例:指定状态改变时触发JavaScript函数getResult的代码
XML_HttpRequest.onreadystatechange = getResult;
-
注意:在指定所触发的事件处理器时,所谓用的JavaScript函数不能添加小括号和指定参数名。但可以使用匿名函数。
- 例如:要调用一个带参数的函数getResult()
- 则可以这样写 :
XML_HttpRequest.onreadystatechange = function(){ getResult("添加参数"); //调用带参数的函数 }; //通过匿名函数指定要带参数的函数
2-2 readyState属性
- 用来获取请求状态。该属性的共有5个状态,分别是:
-
- 0 未初始化
- 1 正在加载
- 2 已加载
- 3 交互中
- 4 完成
2-3 responseText
用来获取服务器的响应,表示为字符串
2-4 responseXML
用于获取服务器的响应,表示为XML,该属性也可以解析DOM对象
2-5 status
- 用来返回服务器的HTTP状态码,HTTP状态码有5中,分别为:
-
- 状态值 状态含义
- 200 表示成功
- 202 表示请求被接受,但尚未成功
- 400 错误请求
- 404 文件未找到
- 500 内部服务器错误
2-6 statusText
用于返回HTTP状态码对应的文本,如OK或者Not Found等。