`

8、读取响应头部——ajax基础笔记

阅读更多

你有时可能需要从服务器获取一些内容,例如,可能想“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
分享到:
评论

相关推荐

    学习ajax的文档——ajax基础文档

    在响应方面,除了读取`responseText`,还可以使用`responseXML`处理XML数据,或者利用`responseType`属性指定返回数据的类型,如`'json'`。 ### 4. 利用DOM进行Web响应 接收到服务器响应后,通常需要将新数据插入到...

    ASP.NET源码——Ajax无刷新中文验证码.zip

    在这个“ASP.NET源码——Ajax无刷新中文验证码.zip”项目中,重点在于实现一个基于Ajax的无刷新中文验证码功能。验证码的主要目的是防止自动化程序(如机器人)进行恶意操作,例如注册、投票或发送垃圾邮件。中文...

    jquery——ajax__json,的一些文档,

    8. **菊花图(Spinner)**:在Ajax请求期间,为了提供更好的用户体验,可以显示加载指示器(如菊花图)。可以使用jQuery UI库或自定义CSS/JavaScript实现。 9. **错误处理**:除了成功的回调,还可以提供错误处理回...

    《PLC综合开发利器——CoDeSys基础编程及应用指南》

    ### PLC综合开发利器——CoDeSys基础编程及应用指南 #### IEC61131-3标准 ##### IEC61131简介 IEC61131是国际电工委员会制定的一系列用于工业控制系统编程的标准。该标准旨在为工业自动化领域的编程提供统一的框架...

    tmp75 ——stm8连续读取温度

    【标题】:“tmp75 ——stm8连续读取温度” 涉及的主要知识点是温度传感器TMP75与STM8微控制器之间的通信,特别是通过I2C(Inter-Integrated Circuit)总线进行的连续数据读取。在这个项目中,STM8作为主设备,负责...

    硬盘扇区超强读取工具——RAWREAD

    硬盘扇区超强读取工具——RAWREAD,官方网站:http://www.pamarsystems.com

    Ajax基础教程(扫描版)

    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章 ...

    ajax读取页面内容【简单的ajax入门实例】

    在本教程中,我们将深入探讨如何使用Ajax来读取页面内容。 ### 1. Ajax基础概念 Ajax的核心是JavaScript对象XMLHttpRequest,它允许JavaScript在后台与服务器通信。虽然名字中有XML,但现在更多地是传输JSON、HTML...

    Ajax异步传输数据(1)——页面格式

    **Ajax异步传输数据(1)——页面格式** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript,利用XMLHttpRequest对象与服务器进行通信,...

    从数据库中读取数据(AJAX版本)

    这篇名为“从数据库中读取数据(AJAX版本)”的博客文章聚焦于如何使用AJAX技术来实现这一功能。AJAX,即异步JavaScript和XML,是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。它极大地提升...

    Ajax征服——注册登录

    1. **创建XMLHttpRequest对象**:这是Ajax通信的基础,JavaScript代码创建一个XMLHttpRequest实例。 2. **监听事件**:设置事件监听器,当用户提交表单时触发Ajax请求。 3. **发送请求**:使用XMLHttpRequest对象...

    qt入门程序——读取txt文件

    ### Qt入门程序——读取txt文件 #### 一、程序概述 本文介绍了一个简单的Qt程序,用于演示如何在Qt应用程序中实现对txt文件的基本读取功能。该程序使用了Qt库中的多个组件与函数,包括`QFileDialog`、`QFile`、`...

    IAR_STM8——FLASH读写-直接操作寄存器

    STM8的FLASH支持快速读取,因此读操作通常非常迅速。 6. **异常处理**: 在进行FLASH操作时,可能出现错误,如电压不稳定、操作超时等。我们需要编写异常处理函数来处理这些情况,确保系统的稳定运行。 7. **安全...

    ajax课堂笔记

    4. 监听状态变化,当状态变为4(表示请求完成)时,读取响应数据。 5. 使用JavaScript处理响应数据,更新DOM以展示新内容。 ### 3. 请求与响应 - **GET请求**:通常用于获取数据,数据包含在URL中,有限的长度限制...

    Ajax征服——无限级级联菜单

    1. **Ajax基础**:在开始之前,我们需要了解JavaScript的基本语法以及XMLHttpRequest对象,它是Ajax的核心,用于在后台与服务器进行异步通信。现代浏览器中的fetch API也是实现Ajax的一种方式,但这里我们主要讲解...

    Ajax基础教程 程序源码

    3. XMLHttpRequest对象:它是Ajax的基础,负责与服务器进行通信,发送请求并处理响应。 二、Ajax工作流程 1. 创建XMLHttpRequest对象:在JavaScript中,首先需要创建一个XMLHttpRequest实例。 2. 初始化请求:设置...

    Jquery ajax方式读取txt文件、Jquery分页.

    在给定的标题和描述中,主要涉及两个关键知识点:使用jQuery的AJAX方法读取TXT文件和实现jQuery分页功能。接下来,我们将深入探讨这两个主题。 首先,我们来讨论如何使用jQuery的AJAX方法读取TXT文件。AJAX(异步...

    PHP实例开发源码——PHP+Ajax无刷新文件上传代码.zip

    本实例"PHP实例开发源码——PHP+Ajax无刷新文件上传代码.zip"着重讲解了如何利用PHP和Ajax技术实现文件的无刷新上传,极大地提升了用户体验。 首先,我们需要了解PHP在文件上传中的基础操作。PHP提供了`$_FILES`...

    Ajax定时读取数据库(源代码发布)

    **Ajax 定时读取数据库技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户...

Global site tag (gtag.js) - Google Analytics