站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Ajax- 读取响应首部
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[Ajax学习教程#Ajax学习教程|上一页]] | {{template:开发语言导航}}</span> <div style="clear:both;"></div> 你有时可能需要从服务器获取一些内容,例如,可能想“ping”一下服务器,验证服务器是否正常运行。此时,你也许只想读取服务器发出的响应首部,而忽略内容。通过读取响应首部,可以得出Content-Type(内容类型)、Content-Length(内容长度),甚至Last- Modified(最后一次修改)的日期。 <br> 如果只关注响应首部,完成这样一个请求的标准做法是使用HEAD请求,而不是前面讨论的GET或POST请求。当服务器对HEAD请求做出响应时,它只发送响应首部而忽略内容,即使可以向浏览器返回所请求的内容,也不会真的把内容返回。由于忽略了内容,对HEAD请求的响应比对GET或POST的响应就小得多。<br> 代码清单4-3展示了从XMLHttpRequest对象获取响应首部的多种方法,并介绍了这些方法在实际中的使用。这个页面有4个链接,分别对应从XMLHttpRequest对象读取响应首部的各个方法。<br> 代码清单4-3 readingResponseHeaders.html<br> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"<br> <nowiki>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"></nowiki><br> <html xmlns="http://www.w3.org/1999/xhtml"><br> <head><br> <title>Reading Response Headers</title><br> <script type="text/javascript"><br> var xmlHttp;<br> var requestType = "";<br> function createXMLHttpRequest() {<br> if (window.ActiveXObject) {<br> xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");<br> }<br> else if (window.XMLHttpRequest) {<br> xmlHttp = new XMLHttpRequest();<br> }<br> }<br> function doHeadRequest(request, url) {<br> requestType = request;<br> createXMLHttpRequest();<br> xmlHttp.onreadystatechange = handleStateChange;<br> xmlHttp.open("HEAD", url, true);<br> xmlHttp.send(null);<br> }<br> function handleStateChange() {<br> if(xmlHttp.readyState == 4) {<br> if(requestType == "allResponseHeaders") {<br> getAllResponseHeaders();<br> }<br> else if(requestType == "lastModified") {<br> getLastModified();<br> }<br> else if(requestType == "isResourceAvailable") {<br> getIsResourceAvailable();<br> }<br> }<br> }<br> function getAllResponseHeaders() {<br> alert(xmlHttp.getAllResponseHeaders());<br> }<br> function getLastModified() {<br> alert("Last Modified: " + xmlHttp.getResponseHeader("Last-Modified"));<br> }<br> function getIsResourceAvailable() {<br> if(xmlHttp.status == 200) {<br> alert("Successful response");<br> }<br> else if(xmlHttp.status == 404) {<br> alert("Resource is unavailable");<br> }<br> else {<br> alert("Unexpected response status: " + xmlHttp.status);<br> }<br> }<br> </script><br> </head>v <body><br> <nowiki><h1>Reading Response Headers</h1></nowiki><br> <nowiki><a href="javascript:doHeadRequest('allResponseHeaders',</nowiki><br> <nowiki>'readingResponseHeaders.xml');">Read All Response Headers</a></nowiki><br> <nowiki><br/><br></nowiki> <nowiki><a href="javascript:doHeadRequest('lastModified',</nowiki><br> <nowiki>'readingResponseHeaders.xml');">Get Last Modified Date</a></nowiki><br> <nowiki><br/></nowiki><br> <nowiki><a href="javascript:doHeadRequest('isResourceAvailable',</nowiki><br> <nowiki>'readingResponseHeaders.xml');">Read Available Resource</a></nowiki><br> <nowiki><br/><br></nowiki> <nowiki><a href="javascript:doHeadRequest('isResourceAvailable',</nowiki><br> <nowiki>'not-available.xml');">Read Unavailable Resource</a></nowiki><br> </body><br> </html><br> 页面上第一个链接展示了XMLHttpRequest对象的getAllResponseHeaders()方法。这个方法只是将所有响应首部获取为一个串。在这个例子中,响应首部显示在警告框中。getAllResponseHeaders()方法的用途很有限,因为它把所有响应首部放在一起作为串返回。要想使用getAllResponseHeaders()方法来获取单个的响应首部,就需要解析返回的串,查找所关注的响应首部。<br> getResponseHeader方法可以通过只返回一个响应首部的值解决这个问题。这个方法取一个串参数,该参数表示所需响应首部的名字(就是你想得到这个响应首部的值)。这个例子使用getResponseHeader方法将Last-Modified首部显示在警告框中。在实际应用中,getResponseHeader方法很可能用于以某个间隔轮询服务器资源。只有自最近一次轮询服务器资源以来Last-Modified响应首部发生变化时,浏览器才会根据服务器资源更新其内容。<br> 页面上的后两个链接使用了XMLHttpRequest对象的另一种能力,即检查服务器返回的HTTP状态码。XMLHttpRequest对象的status属性把HTTP状态作为一个整数返回。如果状态码为200,指示这是正常的成功服务器响应。相反,如果状态码是500,则指示服务器处理请求时出现了某种内部错误。<br> 这个例子使用HTTP状态码来确定服务器资源是否可用。HTTP状态码404指示没有所请求的资源。页面上的Read Available Resource(读取可用资源)链接请求位于服务器上的简单的XML文件。因为服务器上有这个文件,所以HTTP状态码为200,指示这是成功的响应。页面上最后一个链接是Read Unavailable Resource(读取不可用资源),它请求服务器上没有的文件。服务器会用HTTP状态码404做出响应。JavaScript事件处理程序检查服务器响应,看到404状态码,显示警告框指示所请求的资源不可用。<br> 代码清单4-4显示了readingResponseHeaders.xml。<br> 代码清单4-4 readingResponseHeaders.xml<br> <?xml version="1.0" encoding="UTF-8"?><br> <readingResponseHeaders><br> </readingResponseHeaders><br> 显示所有响应首部的结果如图4-3所示。图4-4显示了读取Last-Modified首部的结果,图4-5显示了确定Web资源是否可用的结果。<br> [[Image:image003.jpg]] <br> [[Image:image004.jpg]]<br> [[Image:image005.jpg]]<br> [[category:Ajax]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:开发语言导航
(
编辑
)