什么是XMLHttpRequest对象?
XMLHttpRequest对象用于在后台与服务器交换数据。能够:在不重新加载页面的情况下更新网页;在页面已加载后从服务器请求数据;在页面已加载后从服务器接收数据;在后台向服务器发送数据。所有现在的浏览器都支持XMLHttpRequest对象。
创建XMLHttpRequest对象?
所有现代浏览器都内建了XMLHttpRequest对象,通过一行简单的JavaScript代码,我们就可以创建XMLHttpRequest对象。
xmlhttp = new XMLHttpRequest();
老版本的IE浏览器(IE5和IE6)使用AcitveX对象:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
通常代码中的创建过程:
var XMLHttp=null;
if (window.XMLHttpRequest)
{
XMLHttp=new XMLHttpRequest();
}else if (window.ActiveXObject)
{
XMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
XMLHttpRequest对象属性?
readyState属性:HTTP请求的状态,当一个XMLHttpRequest初次创建时,这个属性的值从0开始,知道接收到完整的HTTP响应,这个值增加到4。5个状态中每一个都有一个相关联的非正式的名称,下表列出了状态,名称和含义: @H_403_54@
XMLHttpRequest对象的方法?
abort()方法:取消当前响应,关闭连接并且结束任何未完成的网络活动。这个方法把XMLHttpRequest对象重置为readyState为0的状态,并且取消所有未完成的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。 @H_403_54@ getAllResponseHeaders()方法:把HTTP响应头部作为未解析的字符串返回。如果readyState小于3,这个方法返回null。否则,它返回服务器发送的所有HTTP响应的头部。头部作为单个的字符串返回,一行一个头部。每行用换行符隔开。 @H_403_54@ getResponseHeader()方法:返回指定的HTTP响应头部的值。其参数是要返回的HTTP响应头部的名称。可以使用任何大小写来指定这个头部名字,和响应头部的比较是不区分大小写的。该方法的返回值是指定的HTTP响应头部的值,如果没有接收到这个头部或者readyState小于3,则为空字符串。如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。 @H_403_54@ open()方法:初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求。 @H_403_54@ send()方法:发送HTTP请求,使用传递给open()方法的参数,以及传递给该方法的可选请求体。 @H_403_54@ setRequestHeader()方法:向一个打开但未发送的请求设置或添加一个HTTP请求。
XMLHttpRequest.open()
初始化Http请求参数。语法open(method,url,async,username,password)。 @H_403_54@ method参数是用于请求的HTTP方法。值包括GET、POST、HEAD。 @H_403_54@ url参数是请求的主体。大多数浏览器实施了一个同源安全策略,并且要求这个URL与包含脚本的文本具有相同的主机名和端口。 @H_403_54@ async参数指示请求使用应该异步地执行。如果这个参数是false,请求是同步的,后续send()的调用将阻塞,直到响应完全接收。如果这个参数是true或省略,请求是异步的,且通常需要一个onreadystatechange事件句柄。 @H_403_54@ username和password参数是可选的,为url所需的授权提供认证资格。如果指定了,它们会覆盖url自己指定的任何资格。
XMLHttpRequest.send()
发送一个 HTTP 请求。语法:send(body)如果通过调用 open() 指定的 HTTP 方法是 POST 或 GET,body 参数指定了请求体,作为一个字符串或者 Document 对象。如果请求体不是必须的话,这个参数就为 null。 @H_403_54@ @H_403_54@ 参考资料:XMLHttpRequest对象