XMLHttpRequeset是什么
XmlHttpRequest,可扩展的超文本传输歇息。从字面上理解:xml,可扩展的标记语言;http,超文本传送协议;request,请求。XmlHttpRequest对象可以利用其中的回调函数,在不刷新页面的情况下,更新页面中的局部的显示。是AJAX可以得以实现的关键对象。
XMLHttpRequest的使用方法
XmlHttpRequest对象的使用,分为五部分。
1.创建HTML文件,并且创建XMLHttpRequest对象(由于IE浏览器不支持单独文件的JavaScript调用,所以将JavaScript写在了HTML文件中)。
2.注册回调方法。
3.设置和服务器端交互的相应参数。
4. 设置向服务器端发送的数据,启动和服务器端的交互,由于需要发送的数据都已经在URL中写入了,所以,这里就写如下代码就可以了(代码走到这里真正的和服务器开始交互)代码如下:
xmlhttp.send(null);
5.写回调方法。在回调函数中判断交互是否结束,相应是否正确,并根据需要获取服务器端返回的数据,更新页面内容。
常用属性和方法
open方法: 指定和服务器交互的HTTP方法,URL地址及其他请求信息。具体写法:open(string method,string url,Boolean asynch, string username,string password)
其中,method 表示HTTP请求方法。支持所有HTTP的方法;url表示请求的服务器的地址;asynch表示是否采用异步方式,true表示异步, false表示同步。后面两个参数可以不指定。提供http认证机制需要的用户名和密码。
send(content) 向服务器发出请求,如果采用异步方式,该方法会立即返回。 content可以不指定或指定为null表示不发送数据。其内容可以是dom对象,也可以是输入流或者字符串。
XMLHttpRequest对象的使用注意事项:
1.不同浏览器中XMLHttpRequest对象建立的方式不同。
2.设置回调函数时,不要在函数名称后面加括号。仅仅是将回调函数的名字赋值给onreadystatechange这个属性。每次readyState的值发生变化的时候,回调函数都会被调用,但是我们一般只需要readyState状态为4的时候的数据。
3.open方法最多可以有五个参数,其中前三个是必须的。即使写null也不可以不写。
4.回调函数中,最好将判断readyState和status的两个if条件分开写。readyState写在外层,status写在内层。(这样在readyState不通过(值不为4)的时候,就不会浪费时间去做status的验证。)
5.当服务器没有正确返回xml数据的时候,在js中使用responseXML的方式获取返回的xml的数据的时候,不同浏览器的结果是有差异的。