`

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响应 接收到服务器响应后,通常需要将新数据插入到...

    超全 Lotus Domino Xpages 开发资料——AJAX读取数据归类资料

    超全 Lotus Domino Xpages 开发资料——AJAX读取数据归类资料 大全通过分类提供给大家,请大家根据需要下载 全开源,并且一看就懂,不保留 https://blog.csdn.net/weijia3624/article/details/107013401

    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读取页面内容【简单的ajax入门实例】

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

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

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

    ASP.NET源码——基于Ajax的邮件系统l.zip

    这个源码包“ASP.NET源码——基于Ajax的邮件系统l.zip”显然包含了一个使用ASP.NET技术实现的电子邮件系统,它利用了Ajax(异步JavaScript和XML)技术来提供更流畅、无需刷新页面的用户体验。 在ASP.NET中,开发者...

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

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

    ajax_读取服务器文件内容.js

    js中的ajax库,使用时需要三个参数, function ajax(url,fnSucc,fnFailed) 第一个为要读取的文件的地址,第二个是读取成功之后要执行的操作的函数,第三个是读取失败后要执行的操作的函数。 if (oAjax.status == ...

    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. 初始化请求:设置...

    Matlab课设——利用冲激响应与卷积实现变声

    在本Matlab课程设计中,我们将探讨如何利用冲激响应(Impulse Response)与卷积(Convolution)技术来实现声音的变换,这是一项在音频处理领域常见的技术应用。Matlab作为一种强大的数值计算和可视化环境,是进行...

Global site tag (gtag.js) - Google Analytics