XMLHTTPRequest对象

XMLHTTPRequest对象:
XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面
来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft? XML Document Object Model (DOM)处理回应。
这里说些题外话,其实这个东西很早就出现了,只是以前浏览器的支持不够,只有IE中才支持,所以大多数的WEB程序员都没有怎么用他,但是现在情况发生了很大地改变,Mozilla和Safari把它采用为事实上的标准,主流的浏览器都开始支持XMLHTTPRequest对象了。但是这里需要重点说明的是XMLHTTPRequest目前还不是一个W3C的标准,所以在不同的浏览器上表现也稍有些区别
在使用XMLHTTPRequest对象发送请求和处理响应之前,我们必须要用javascript创建一个XMLHTTPRequest对象。(IE把XMLHTTPRequest实现为一个ActiveX对象,其他的浏览器[如Firefox/Safari/Opear]则把它实现为一个本地的javascript对象)

example:
<html>
<head>
<title>XMLHTTPRequest对象的说明DEMO</title>
<script language="javascript" type="text/javascript">
<!--
var xmlhttp;
// 创建一个XMLHTTPRequest对象
function createXMLHTTPRequext(){
      if(window.ActiveXObject) {
           xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    }
    else if(window.XMLHTTPRequest){
       xmlhttp = new XMLHTTPRequest();
    }
}
function PostOrder(xmldoc)
{
    createXMLHTTPRequext();
   
    // 方法:open
    // 创建一个新的http请求,并指定此请求的方法、URL以及验证信息
    // 语法:oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);
    // 参数
    // bstrMethod
    // http方法,例如:POST、GET、PUT及PROPFIND。大小写不敏感。
    // bstrUrl
    // 请求的URL地址,可以为绝对地址也可以为相对地址。
    // varAsync[可选]
    // 布尔型,指定此请求是否为异步方式,默认为true。如果为真,当状态改变时会调用onreadystatechange属性指定的回调函数。
    // bstrUser[可选]
    // 如果服务器需要验证,此处指定用户名,如果未指定,当服务器需要验证时,会弹出验证窗口。
    // bstrPassword[可选]
    // 验证信息中的密码部分,如果用户名为空,则此值将被忽略。
    
    // 备注:调用此方法后,可以调用send方法向服务器发送数据。
    xmlhttp.Open("get", " http://localhost/example.htm", false);
    // var book = xmlhttp.responseXML.selectSingleNode("//book[@id='bk101']");
    // alert(book.xml);
   
    // 属性:onreadystatechange
    // onreadystatechange:指定当readyState属性改变时的事件处理句柄
    // 语法:oXMLHttpRequest.onreadystatechange = funcMyHandler;
    // 如下的例子演示当XMLHTTPRequest对象的readyState属性改变时调用HandleStateChange函数,
    // 当数据接收完毕后(readystate == 4)此页面上的一个按钮将被激活
    // 备注:此属性只写,为W3C文档对象模型的扩展.
    xmlhttp.onreadystatechange= HandleStateChange;
   
    // 方法:send
    // 发送请求到http服务器并接收回应
    // 语法:oXMLHttpRequest.send(varBody);
    // 参数:varBody (欲通过此请求发送的数据。)
    // 备注:此方法的同步或异步方式取决于open方法中的bAsync参数,如果bAsync == False,此方法将会等待请求完成或者超时时才会返回,如果bAsync == True,此方法将立即返回。
    // This method takes one optional parameter, which is the requestBody to use. The acceptable VARIANT input types are BSTR, SAFEARRAY of UI1 (unsigned bytes), IDispatch to an XML Document Object Model (DOM) object, and IStream *. You can use only chunked encoding (for sending) when sending IStream * input types. The component automatically sets the Content-Length header for all but IStream * input types.
    // 如果发送的数据为BSTR,则回应被编码为utf-8, 必须在适当位置设置一个包含charset的文档类型头。
    // If the input type is a SAFEARRAY of UI1, the response is sent as is without additional encoding. The caller must set a Content-Type header with the appropriate content type.
    // 如果发送的数据为XML DOM object,则回应将被编码为在xml文档中声明的编码,如果在xml文档中没有声明编码,则使用默认的UTF-8。
    // If the input type is an IStream *, the response is sent as is without additional encoding. The caller must set a Content-Type header with the appropriate content type.
    xmlhttp.Send(xmldoc);
   
    // 方法:getAllResponseHeaders
    // 获取响应的所有http头
    // 语法:strValue = oXMLHttpRequest.getAllResponseHeaders();
    // 备注:每个http头名称和值用冒号分割,并以\r\n结束。当send方法完成后才可调用该方法。
    alert(xmlhttp.getAllResponseHeaders());
    // 方法:getResponseHeader
    // 从响应信息中获取指定的http头
    // 语法:strValue = oXMLHttpRequest.getResponseHeader(bstrHeader);
    // 备注:当send方法成功后才可调用该方法。如果服务器返回的文档类型为"text/xml", 则这句话
    // xmlhttp.getResponseHeader("Content-Type");将返回字符串"text/xml"。可以使用getAllResponseHeaders方法获取完整的http头信息。
    alert(xmlhttp.getResponseHeader("Content-Type")); // 输出http头中的Content-Type列:当前web服务器的版本及名称。
   
   
    document.frmTest.myButton.disabled = true;
    // 方法:abort
    // 取消当前请求
    // 语法:oXMLHttpRequest.abort();
    // 备注:调用此方法后,当前请求返回UNINITIALIZED 状态。
    // xmlhttp.abort();
   
    // 方法:setRequestHeader
    // 单独指定请求的某个http头
    // 语法:oXMLHttpRequest.setRequestHeader(bstrHeader, bstrValue);
    // 参数:bstrHeader(字符串,头名称。)
    //       bstrValue(字符串,值。)
    // 备注:如果已经存在已此名称命名的http头,则覆盖之。此方法必须在open方法后调用。
    // xmlhttp.setRequestHeader(bstrHeader, bstrValue);
}
function HandleStateChange()
{
      // 属性:readyState
    // 返回XMLHTTP请求的当前状态
    // 语法:lValue = oXMLHttpRequest.readyState;
    // 备注:变量,此属性只读,状态用长度为4的整型表示.定义如下:
    // 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
    // 1 (初始化) 对象已建立,尚未调用send方法
    // 2 (发送数据) send方法已调用,但是当前的状态及http头未知
    // 3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误,
    // 4 (完成) 数据接收完毕,此时可以通过通过responseBody和responseText获取完整的回应数据
    if (xmlhttp.readyState == 4){
       document.frmTest.myButton.disabled = false;
      
         // 属性:responseBody
       // 返回某一格式的服务器响应数据
       // 语法:strValue = oXMLHttpRequest.responseBody;
       // 备注:变量,此属性只读,以unsigned array格式表示直接从服务器返回的未经解码的二进制数据。
       alert(xmlhttp.responseBody);
      
       // 属性:responseStream
       // 以Ado Stream对象的形式返回响应信息
       // 语法:strValue = oXMLHttpRequest.responseStream;
       // 备注:变量,此属性只读,以Ado Stream对象的形式返回响应信息。
       alert(xmlhttp.responseStream);
      
         // 属性:responseText
       // 将响应信息作为字符串返回
       // 语法:strValue = oXMLHttpRequest.responseText;
       // 备注:变量,此属性只读,将响应信息作为字符串返回。XMLHTTP尝试将响应信息解码为Unicode字符串,
       // XMLHTTP默认将响应数据的编码定为UTF-8,如果服务器返回的数据带BOM(byte-order mark),XMLHTTP可
       // 以解码任何UCS-2 (big or little endian)或者UCS-4 数据。注意,如果服务器返回的是xml文档,此属
       // 性并不处理xml文档中的编码声明。你需要使用responseXML来处理。        
         alert(xmlhttp.responseText);
        
         // 属性:responseXML
       // 将响应信息格式化为Xml Document对象并返回
       // 语法:var objDispatch = oXMLHttpRequest.responseXML;
       // 备注:变量,此属性只读,将响应信息格式化为Xml Document对象并返回。如果响应数据不是有效的XML文档,
       // 此属性本身不返回XMLDOMParseError,可以通过处理过的DOMDocument对象获取错误信息。
       alert("Result = " + xmlhttp.responseXML.xml);
      
         // 属性:status
       // 返回当前请求的http状态码
       // 语法:lValue = oXMLHttpRequest.status;
       // 返回值:长整形标准http状态码,定义如下:
       // Number:Description 
       // 100:Continue
         // 101:Switching protocols
         // 200:OK
         // 201:Created
         // 202:Accepted
         // 203:Non-Authoritative Information
         // 204:No Content
         // 205:Reset Content
         // 206:Partial Content
         // 300:Multiple Choices
         // 301:Moved Permanently
         // 302:Found
         // 303:See Other
         // 304:Not Modified
         // 305:Use Proxy
         // 307:Temporary Redirect
         // 400:Bad Request
         // 401:Unauthorized
         // 402:Payment Required
         // 403:Forbidden
         // 404:Not Found
         // 405:Method Not Allowed
         // 406:Not Acceptable
         // 407:Proxy Authentication Required
         // 408:Request Timeout
         // 409:Conflict
         // 410:Gone
         // 411:Length Required
         // 412:Precondition Failed
         // 413:Request Entity Too Large
         // 414:Request-URI Too Long
         // 415:Unsupported Media Type
         // 416:Requested Range Not Suitable
         // 417:Expectation Failed
         // 500:Internal Server Error
         // 501:Not Implemented
         // 502:Bad Gateway
         // 503:Service Unavailable
         // 504:Gateway Timeout
         // 505:HTTP Version Not Supported
         // 备注:长整形,此属性只读,返回当前请求的http状态码,此属性仅当数据发送并接收完毕后才可获取。
       alert(xmlhttp.status);
      
       // 属性:statusText
       // 返回当前请求的响应行状态
       // 语法:strValue = oXMLHttpRequest.statusText;
       // 备注:字符串,此属性只读,以BSTR返回当前请求的响应行状态,此属性仅当数据发送并接收完毕后才可获取。
       alert(xmlhttp.statusText);
    }
}
//-->
</script>
</head>
<body>
<form name="frmTest">   
    <input name="myButton" type="button" value="Click Me" onclick="PostOrder('http://localhost/example.htm');">
</form>   
</body>
</html>
深度学习动画实战:用MotorNerve系统5步实现自然角色交互 本文详细介绍了如何利用腾讯游戏的MotorNerve系统,通过深度学习技术5步实现自然角色动画交互。从环境搭建、基础运动控制到交互过渡和行走转向优化,该系统能显著提升游戏动画制作效率,尤其适合中小团队替代昂贵的动捕方案。重点解析了骨骼动画配置、PFNN控制器使用及Blender工作流集成等核心技术。 阅读详情

相关推荐

pgpool-II踩坑日记两则

最近结合pgpool-II进行postgreSQL高可用的部署,过程非常煎熬,作为新手,公司也没有前辈熟悉postgreSQL,只能自己摸索。好在已经搞明白了,把困扰我很长时间的两个问题分享一下。 1. show pool_nodes 第一个问题就是 show pool_nodes 的使用,照着教程建好后,在哪里执行这个指令呢?我在pg服务器上怎么执行这个指令都显示 ERROR: unrecognized configuration parameter "pool_nodes",一度怀疑人生。翻阅了很多资料

zhaizhai6_6的博客 4540

XMLHttpRequest

XMLHttpRequest:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest

duansamve的博客 1万+

ArcGIS学习记录—SHP文件转换为KML KMZ数据,并显示面要素相应的标注

使用相应软件操作获取KMZ数据得以下发到外业调查人员,使得矢量数据能够更显而易见,可视化,让外业人员的工作减轻许多。(过程步骤是借鉴于网络上的相关人士给的建议,根据这些建议自己做出来的步骤,可能有些粗略,有问题的话可以再进行探讨)...

qq_41046162的博客 5万+

XMLHttpRequest 详解

XMLHTTPRequest对象,顾名思义:是基于XML的HTTP请求。XMLHTTPRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信。自从浏览器提供有了XMLHTTPRequest这个接口之后,ajax操作就此诞生

m0_48982503的博客 1万+

泛微Ecology9单点登录实战指南:从Token获取到页面跳转

本文提供了一份详尽的泛微Ecology9单点登录实战指南,重点解析了Token跳转式SSO的核心流程。内容涵盖从理解关键参数(如appid、loginid)与一次性Token机制,到通过代码示例演示如何正确调用接口获取Token,并详细说明了拼接不同场景跳转地址的完整规则与安全实践,旨在帮助开发者高效、稳定地实现业务系统与OA门户的无缝集成。

ol789012345的博客 1064

SAP MM委外加工保姆级教程:从BOM配置到MIGO发货的完整避坑指南

本文提供SAP MM模块中委外加工的完整操作指南,涵盖从BOM配置到MIGO发货的全流程。详细解析委外采购和工序委外两种模式,包括主数据配置、采购订单创建及物料移动等关键步骤,帮助用户规避常见错误,提升供应链管理效率。特别适合制造业企业实施SAP外包业务参考。

weixin_26905487的博客 527

XMLHttpRequest的属性

1.前言  i.    XMLHttpRequest对象的简单的属性: 1)        onreadystatechange:该属性用于指定XMLHttpRequest对象状态改变时的事件处理函数。 2)        readyState:该属性用于获取XMLHttpRequest对象处理状态 3)        responseText:该属性用于获取服务器响应的XML文档对象

owen_william的博客 2075

国产HDMI2.0芯片GSV2011怎么选?手把手教你用它设计音视频采集卡(附FPGA/海思对接指南)

本文详细解析国产HDMI2.0芯片GSV2011在音视频采集卡设计中的应用,涵盖芯片选型、硬件设计要点及与FPGA/海思平台的对接指南。GSV2011凭借4K@60Hz支持、音频提取嵌入功能和高集成度,成为音视频设备的核心选择,助力开发者快速实现高性能采集卡设计。

weixin_30181209的博客 332

XMLHttpRequest对象的常用属性

XMLHttpRequest对象提供了一些常用属性,通过这些属性可以获取服务器的响应状态及响应内容等,下面将对XMLHttpRequest对象的常用属性进行介绍。   一 指定状态改变时所触发的事件处理器的属性 XMLHttpRequest对象提供了用于指定状态改变时所触发的事件处理器的属性onreadystatechange。 在Ajax中,每个状态改变时都会触发这个事件处理器,通常...

iteye_5722的博客 649

告别示教器!用C#和ABB PC SDK 6.08打造你的第一个Windows机器人控制台(附完整连接代码)

本文详细介绍了如何使用C#和ABB PC SDK 6.08开发Windows机器人控制台应用,实现无示教器的机器人控制。从环境配置、SDK引用到机器人发现、连接及状态监控,提供了完整的代码示例和架构设计建议,帮助开发者快速掌握上位机控制技术。

weixin_29758911的博客 320

通达信主力检测利器

主力轨迹:100*EMA(EMA(MTM,N1),N1)/EMA(EMA(ABS(MTM),N1),N1),COLORWHITE;主力拉高:IF(VAR51<REF(VAR51,1),VAR51,0),COLORYELLOW,NODRAW;洗盘:IF(VAR5<REF(VAR5,1),VAR5,0),COLOR000079,NODRAW;主力进场:IF(VAR5>REF(VAR5,1),VAR5,0),COLORRED,NODRAW;MAZL:MA(主力轨迹,N2),COLORYELLOW;

zhibiaogong的博客 7455

XMLHTTPRequest的属性和方法简介

1、XMLHTTPRequest对象什么是?最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套API。XmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。(这个功能正是AJAX的一大特点之一:))来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端

鸟儿飞的专栏 1283

Arduino ESP8266通过 RF433数据收发实验

Arduino ESP8266通过 RF433射频模块实现数据收发实验 写这篇文章,折腾了2天,在没有成功之前,一直在摸索和采坑当中,不要问我黑暗和黎明之间有多长。开发很多时候只问结果,不问过程的,在这里分享来之不易的结果,希望后面的人不要采坑,有成功的案例先河,后面与之相关的应用开发只需要套用模板修改即可实现。 实物搭建 RF433模块 我使用的是这个:nodemcu 本案例开发所使用到的库:RadioHead:http://www.airspayce.com/mikem/

perseverance51博客 3808

XMLHttpRequest 对象

所有现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象。在下一章中,我们将使用 XMLHttpRequest 对象从服务器取回 XML 信息。如需学习更多关于 XMLHttpRequest 对象的知识,请学习我们的。XMLHttpRequest 对象用于在后台与服务器交换数据。XMLHttpRequest 对象是。

Zff19880926的博客 371

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

XMLHttpRequest对象

创建XMLHttpRequest对象 (部分内容参考:http://www.w3school.com.cn/xml/xml_http.asp) XMLHttpRequest 对象用于在后台与服务器交换数据。 XMLHttpRequest 对象用于在后台与服务器交换数据。 XMLHttpRequest 对象是开发者的梦想,因为您能够: · 在不重新加载页面的情况下更新网页 · 在页面已加

徐刘根的博客 3470

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

XMLHttpRequest对象简介

1.XMLHttpRequest对象       web2.0、Ajax的核心,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。因为它能够: 在不重新加载页面的情况下更新网页在页面已加载后从服务器请求数据在页面已加载后从服务器接收数据在后台向服务器发送数据 浏览器支持

ProgramSource 1250

Ajax核心对象——XMLHttpRequest对象

XMLHttpRequest对象在Ajax中占据着十分重要的地位,因为通常意义上的和服务器进行交互是通过提交表单的形式,而在Ajax中的客户端通过XMLHttpRequest对象实现与服务器的通信。也就是说正是因为XMLHttpRequest才使得Ajax得以实现,于是我们的与服务器的交互速度明显提升,消除了令人头疼的等待之后用户体验便也更加良好。名字由来:XMLHttpRequest之所以叫这个

郗晓勇|利己者生,利人者恒 9616

XMLHttpRequest以及Promise对象的使用

通过[XHR]XMLHttpRequest对象来和服务器进行交互,axios库的底层也是通过XMLHttpRequest来和服务器进行交互,只是将实现细节进行了封装,让操作更加简洁可以用于某些只需和服务器进行少次交互的静态网站进行使用,减少代码的体积对象.send()在地址后面加上。

wozhaonue_w的博客 2992

XMLHttpRequest对象获取响应数据

XMLHttpRequest对象获取响应数据 参考代码 // 通过 FormData 对象 发送请求body var myFormData = new FormData(); myFormData.append('file', fileData); // XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); // open // 【注】open的async参数如果设为true,表示异步加载、不等待服务器响应 xhr.open('post', '服务器U

逍遥在南方的博客 4950

XMLHttpRequest对象详解

XMLHttpRequest(XHR)是一个API对象,其中的方法可以用来在浏览器和服务器端传输数据。这个对象是浏览器的js环境提供的。从XHR获取数据的目的是为了持续修改一个加载过的页面,XHR是Ajax设计的底层概念。XHR使用的协议不同于HTTP,不仅可以使用XML格式的数据,也支持JSON,HTML或者纯文本。 WHATWG组织负责维护一个动态的XHR标准文档。W3C基于WHATWG标准...

u013407012的专栏 3062

一页面多XMLHttpRequest对象

刚在ajacn发了个贴,关于为XMLHttpRequest提供一个对象池。或许能帮到你,转贴如下:在网上看到了有些同志提到了为Ajax的XMLHttpRequest提供一个对象池,也读了他们给出的实现代码。感觉不是特别理想,于是模仿apache的commons中的ObjectPool的思路写了一个简单的JavaScript版。 望指教: 代码 function O

Tom Studio (汤姆工作室) 1192
上一篇: myeclipse7.5安装插件
下一篇: 动态调整iframe页面的大小
JackAndroid
博客等级 码龄17年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值