Ajax笔记
Ajax技术的核心是XMLHttpRequest对象(简称XHR),XHR为从服务器获取数据提供了流畅的接口,再将获取的数据通过DOM插入页面中。现在来说,熟练掌握使用XHR对象已经成为现代web开发人员必须掌握的一种技能。
现在开始Ajax体验之旅:
一、创建XHR对象
var xhr = new XMLHttpRequest();
二、XHR用法
-
open()
xhr.open("get","liuwen.txt","false");
-
send()
xhr.send(null);
send()接收一个参数,作为请求主体发送的数据。如果不需要通过请求主体发送数据,则必须传入null,因为这个参数对某些浏览器来说是必须的。send()执行之后,请求就会被发送到服务器。
-
上述的请求是同步的,javascript代码会等到服务器响应之后再继续执行。响应后,响应的数据会自动填充到XHR对象的属性。如下:
responseText:作为响应主体被返回来的文本。
resposeXML:如果响应的内容类型为"text/xml"或"application/xml",这个属性中将保存包含着响应数据的XML DOM文档。
status:响应的HTTP状态。
statusText:HTTP状态说明书。 接收到响应后,我们需要检查status属性,确定响应是否成功返回。
if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){ alert("xhr.responseText"); }else{ alert("reaquest was unsuccessful: + xhr.status"); }
一般来说,将HTTP状态码为200作为成功标志,状态码304表示请求的资源并没有被修改,可以直接使用浏览器中缓存的版本(也等于响应有效)。
前面的都是同步请求,但是多数我们还是发送异步请求,才能让Javascript继续执行而不必等待响应,此时需要检测readyState属性,该属性表示请求/响应过程的当前活动阶段。当该值为4,所有数据都已经就绪。
-
HTTP头部信息
: HTTP头部信息中部分对开发人员有用,XHR对象提供了操作这两种头部信息(请求头部和响应头部)的方法。
三、两种常用请求
GET请求是最常见的请求,用于向服务器查询某些信息。
POST请求使用频率仅次于GET,用于向服务器发送需要被保存的数据。
GET请求的效率接近POST的两倍。
四、安全
通过XHR访问的URL也可以通过浏览器或者服务器来访问,比如下面这个URL
/getuserinfo.PHP?id=23