鉴于,今日课程未讲交互,所以本次作业以自我理解和如何应用AJAX的过程作为主要内容,涉及AJAX两种不同方式的处理及
使用过程。
Ajxa是一种创建快速动态网页数据交互的技术。
一、基本应用
【XMLHttpRequest】 对象是AJAX实现的基础。用于在后台与服务器交换数据。创建XMLHttpRequest对象实例的方法和普通对象实例化的方法一样,如:var xhr = new XMLHttpRequest( );
XMLHttpRequest对象包括两个方法完成数据传输,
open( )方法:obj.open(method ,url ,async ) obj.open(“请求类型","服务器受理文件位置","true(异步) | false(同步)")
send( )方法:obj.send(string) obj,send("将请求发送到服务器") string仅用于POST请求。
open( )方法中的请求类型分为GET类型 和POST类型,GET更简单也更快,并且大部分情况下都能用,但是不适合大量数据发送
在发送大量数据时或发送包含未知字符的用户输入时,使用POST更稳定。
一般情况下,使用POST类型传输数据时,需要在open( )方法之后,再使用setRequestHeader( header,value )方法,设置响应的表头信息,用途是将待传输的数据,包装成表单数据传输。header: 规定头的名称 value:头信息的值
setRequestHeader("Content-type","application/x-www-form-urlencode")
二、AJAX服务端的响应
服务端响应返回的数据,一般使用两个属性来表示,1、responseText 属性 或 2、responseXML 属性
1、responseText 属性 获得字符串形式的响应数据。
2、responseXML 属性,获得XML形式的响应数据。
鉴于当前大多以JSON传输数据,所以基本以responseText,注意传输数据和接收数据时将数据转换成字符串。
三、AJAX的监听事件 onreadystatechange事件
当AJAX请求被发送到服务器时,客户端需针对一些服务器的返回状态进行响应任务执行。即当服务器响应 readyState状态改变
时,会触发onreadystatechange事件。readyState的状态有5中,目前仅需关注重要的就绪状态 readyState =4 即可
影响onreadystatechange触发事件的状态常见的有两类1. readyState 2.status 状态
四、AJAX的使用步骤
1> 建立 var xhr = new XMLHttpRequest()
2> 状态监听 xhr.onreadystatechange =function(){
if(readyState ==4 && status==200){
var res = xhr.responseText //注意一般值为json字符串,需要通过json.parse()转成JS对象
}
}
3> 设置方式 xhr.open("GET",url,true)或者 xhr.open("POST",url,true)
当类型为POST时,要设置文件头属性, setRequestHeader("content-type","application/x-www-from-urlencoded")
4> 发送 xhr.send()