你有时可能需要从服务器获取一些内容,例如,可能想“ping”一下服务器,验证服务器是否正常运行。此时,你也许只想读取服务器发出的响应首部,而忽略内容。通过读取响应首部,可以得出Content-Type(内容类型)、Content-Length(内容长度),甚至 Last-Modified(最后一次修改)的日期。
如果只关注响应首部,完成这样一个请求的标准做法是使用HEAD请求,而不是前面讨论的GET或POST请求。当服务器HEAD请求做出响应时,它只发送响应首部而忽略内容,即使可以向浏览器返回所请求的内容,也不会零点的把内容返回。由于忽略了内容,对HEAD请求的响应比对GET或POST的响应就小得多。
读取响应头部
示例展示了从XMLHttpRequest对象获取响应首部的多种方法,并介绍了这些方法在实际中的使用。页面有4个链接,分别对应从XMLHttpRequest对象读取响应首部的各个方法。
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">
<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;
//这里发送的是HEAD请求
xmlHttp.open("HEAD", url, true);
xmlHttp.send(null);
}
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(requestType == "allResponseHeaders") {
getAllResponseHeaders();
}
else if(requestType == "lastModified") {
getLastModified();
}
else if(requestType == "isResourceAvailable") {
getIsResourceAvailable();
}
}
}
//打印所有响应头信息
function getAllResponseHeaders() {
//xmlHttp.getAllResponseHeaders()得到所有头部信息
alert(xmlHttp.getAllResponseHeaders());
}
//打印最后一次修改时间
function getLastModified() {
//xmlHttp.getResponseHeader()最后一次修改时间头部
alert("Last Modified: " + xmlHttp.getResponseHeader("Last-Modified"));
}
function getIsResourceAvailable() {
//200表示资源可用
if(xmlHttp.status == 200) {
alert("Successful response");
}//404表示资源未找到
else if(xmlHttp.status == 404) {
alert("Resource is unavailable");
}
else {//或是其他状态
alert("Unexpected response status: " + xmlHttp.status);
}
}
</script>
</head>
<body>
<h1>Reading Response Headers</h1>
<a href="javascript:doHeadRequest('allResponseHeaders', 'readingResponseHeaders.xml');">Read All Response Headers</a>
<br/>
<a href="javascript:doHeadRequest('lastModified', 'readingResponseHeaders.xml');">Get Last Modified Date</a>
<br/>
<a href="javascript:doHeadRequest('isResourceAvailable', 'readingResponseHeaders.xml');">Read Available Resource</a>
<br/>
<a href="javascript:doHeadRequest('isResourceAvailable', 'not-available.xml');">Read Unavailable Resource</a>
</body>
</html>
readingResponseHeaders.xml清单:
<?xml version="1.0" encoding="UTF-8"?>
<readingResponseHeaders>
</readingResponseHeaders>
运行结果:
- 大小: 3.2 KB
- 大小: 6 KB
- 大小: 4.8 KB
- 大小: 4.3 KB
- 大小: 4.4 KB
分享到:
相关推荐
超全 Lotus Domino Xpages 开发资料——AJAX读取数据归类资料 大全通过分类提供给大家,请大家根据需要下载 全开源,并且一看就懂,不保留 https://blog.csdn.net/weijia3624/article/details/107013401
python 实现RFID串口数据读取(csdn)————程序
android的SDK做了调整,相应的读取联系人资料有了变化。 这里提供的是如何在2.0包括2.1中读取联系人资料的代码
硬盘扇区超强读取工具——RAWREAD,官方网站:http://www.pamarsystems.com
4.2 读取响应首部 75 4.3 动态加载列表框 79 4.4 创建自动刷新页面 85 4.5 显示进度条 90 4.6 创建工具提示 95 4.7 动态更新web页面 101 4.8 访问web服务 110 4.9 提供自动完成 116 4.10 小结 123 第5章 ...
适合前端初学者 jquery中的datatable使用ajax读取数据 并展示表格数据
使用AJAX技术来实现读取本地文本文档内容,然后将读取到的内容显示在网页上
tmp75 ——stm8 iic总线连续读取温度 速度还是顶快的!
以行为单位读取文件txt文件内容.属于基础内容
如题,ajax读取页面内容【简单的ajax入门实例】
python基于pandas读取数据(csdn)————程序
js中的ajax库,使用时需要三个参数, function ajax(url,fnSucc,fnFailed) 第一个为要读取的文件的地址,第二个是读取成功之后要执行的操作的函数,第三个是读取失败后要执行的操作的函数。 if (oAjax.status == ...
python读取word文档(csdn)————程序
Jquery ajax 读取txt文件 Jquery分页 Jquery ajax 读取txt文件 Jquery分页
用ajax实现自动读取数据库数据,而且是在定时读取,你可是自己设置
jQuery ajax读取json文件内容
unigui_ajax读取本地文件信息 unigui_ajax读取本地文件信息
读取xml生成树 ajax读取xml动态生成树(1)
qt入门级的程序,读取txt文件代码。通过QFileDialog选择文件路径及文件名,将文件内容读入QTextStream,定义QString变量line来一行行读取文件内容,最后用label或textbrowser显示。
C语言——结构体的读取与写入.zip