你有时可能需要从服务器获取一些内容,例如,可能想“ping”一下服务器,验证服务器是否正常运行。此时,你也许只想读取服务器发出的响应首部,而忽略内容。通过读取响应首部,可以得出Content-Type(内容类型)、Content-Length(内容长度),甚至Last- Modified(最后一次修改)的日期。
如果只关注响应首部,完成这样一个请求的标准做法是使用HEAD请求,而不是前面讨论的GET或POST请求。当服务器对HEAD请求做出响应时,它只发送响应首部而忽略内容,即使可以向浏览器返回所请求的内容,也不会真的把内容返回。由于忽略了内容,对HEAD请求的响应比对GET或POST的响应就小得多。
代码清单4-3展示了从XMLHttpRequest对象获取响应首部的多种方法,并介绍了这些方法在实际中的使用。这个页面有4个链接,分别对应从XMLHttpRequest对象读取响应首部的各个方法。
代码清单4-3 readingResponseHeaders.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> www.jc567.cn
<head>
<title>Reading Response Headers</title>
<script type="text/javascript">
var xmlHttp;
var requestType = "";
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
}
function doHeadRequest(request, url) {
requestType = request;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("HEAD", url, true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(requestType == "allResponseHeaders") {
getAllResponseHeaders();
}
else if(requestType == "lastModified") {
getLastModified();
文章来源于www.jc567.cn