Ajax基礎教程(4)- 實現基本Ajax技術 4.2 讀取響應首部

來源:互聯網
上載者:User

你有時可能需要從伺服器擷取一些內容,例如,可能想“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">
<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();
}
else if(requestType == "isResourceAvailable") {
getIsResourceAvailable();
}
}
}
function getAllResponseHeaders() {
alert(xmlHttp.getAllResponseHeaders());
}
function getLastModified() {
alert("Last Modified: " + xmlHttp.getResponseHeader("Last-Modified"));
}
function getIsResourceAvailable() {
if(xmlHttp.status == 200) {
alert("Successful response");
}
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>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.