Ajax技术之XMLHttpRequest对象详解

掌握异步通信:深入XMLHttpRequest技术 XMLHttpRequest(XHR)是一个允许网页脚本发送HTTP请求以及接收HTTP响应的对象。它是Web开发中用于异步通信的核心技术之一。通过XHR,开发者可以不必重新加载整个页面,就能够更新网页的部分内容,从而创建更快速响应的Web应用。在HTTP请求中,头部字段提供了关于请求本身、被请求资源以及客户端和服务器之间如何进行交互的额外信息。例如,User-Agent头部用于标识发出请求的浏览器类型,而则指定发送数据的格式。常见的请求头部字段包括:Accept。 阅读详情

Ajax是XMLHttpRequest对象和JavaScript、XML、CSS、DOM等多种技术的组合。其中,只有XMLHttpRequest对象是新技术,其他的均为已有的技术。下面就对Ajax使用的XMLHttpRequest对象进行介绍。

1、XMLHttpRequest对象的由来

Ajax使用的技术中,最核心的技术就是XMLHttpRequest,它是一个具有应用程序接口的JavaScript对象,能够使用超文本传输协议(HTTP)连接一个服务器,是微软公司为了满足开发者的需要,于1999年在IE5.0浏览器中率先推出的。现在许多浏览器都对其提供了支持,不过实现方式与IE有所不同。


2、初始化XMLHttpRequest对象

在使用XMLHttpRequest对象发送请求和处理响应之前,首先需要初始化该对象,由于XMLHttpRequest不是一个W3C标准,所以对于不同的浏览器,初始化的方法也是不同的。通常情况下,初始化XMLHttpRequest对象只需要考虑两种情况,一种是IE浏览器,一种是非IE浏览器。下面分别进行介绍。

1)IE浏览器

IE浏览器把XMLHttpRequest实例化为一个ActiveX对象。具体方法如下:

var http_request = new ActiveXObject("Msxml2.XMLHTTP");

或

var http_request = new ActiveXObject("Microsoft.XMLHTTP");
在上面的语法中,Msxml2.XMLHTTP和Microsoft.XMLHTTP是针对IE浏览器的不同版本而进行设置的,目前比较常用的是这两种。

2)非IE浏览器

非IE浏览器(如Firefox、Opera、Mozilla、Safari)把XMLHttpRequest对象实例化为一个本地JavaScript对象。具体方法如下:

var http_request = new XMLHttpRequest();

为了提高程序的兼容性,可以创建一个跨浏览器的XMLHttpRequest对象。创建一个跨浏览器的XMLHttpRequest对象其实很简单,只需要判断一下不同浏览器的实现方式,如果浏览器提供了XMLHttpRequest类,则直接创建一个实例,否则实例化一个ActiveX对象。具体代码如下:

if(window.XMLHttpRequest){
	http_request = new XMLHttpRequest();
}else if(window.ActiveXObject){
	try{
		http_request = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			http_request = new ActiveXObject("Microsoft.XMLHTTP");
		}catch(e){
		}
	}
}
在上面的代码中,调用window.ActiveXObject将会返回一个对象,或是null。在if语句中,会把返回值看作是true或false(如果返回的是一个对象,则为true;否则返回null,则为false)。


3、XMLHttpRequest对象的常用方法

XMLHttpRequest对象提供了一些常用的方法,通过这些方法可以对请求进行操作。下面对XMLHttpRequest对象的常用方法进行介绍。

1)open()方法

用于设置进行异步请求目标的URL、请求方法以及其他参数信息。其具体语法如下:

open("method",URL"[,asyncFlag[,"userName"[,"password"]]])
method:用于指定请求的类型,一般为GET或POST。

URL:用于指定请求地址,可以使用绝对地址或者相对地址,并且可以传递查询字符串。

asyncFlag:可选参数,用于指定请求方式,异步为true,同步为false,默认为true。

userName:可选参数,用于指定请求用户名,没有时可以省略。

password:可选参数,用于指定请求密码,没有时可以省略。

例如:设置异步请求目标为register.jsp,请求方法为GET,请求方式为异步的代码如下:

open("GET","register.jsp",true);

2)send()方法

用于向服务器发送请求。如果请求声明为异步,该方法将立即返回,否则将等到接收到响应为止。其语法格式如下:

send(content)

content:用于指定发送的数据,可以是DOM对象的实例、输入流或字符串。如果没有参数需要传递,可以设置为null。

例如:向服务器发哦是哪个一个不包含任何参数的请求,可以使用下面的代码:

http_request.send(null);

3)setRequestHeader()方法

用于为请求的HTTP头设置值。其具体语法格式如下:

setRequestHeader("header","value")
header:用于指定HTTP头。

value:用于为指定的HTTP头设置值。

注意:setRequestHeader()方法必须在调用open()方法之后才能调用。

例如:在发送POST请求时,需要设置Content-Type请求头的值为“application/x-www-form-urlencoded”,这时就可以通过setRequestHeader方法进行设置、具体代码如下:

http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

4)abort()方法

用于停止或放弃当前异步请求。其语法格式如下:

abort()

5)getResponseHeader()方法

用于以字符串形式返回指定的HTTP头信息。其语法格式如下:

getResponseHeader("headerLabel")
headerLabel:用于指定HTTP头,包括Server、Content-Type和Date等。

例如:要获取HTTP头Content-Type的值,可以使用以下代码:

http_request.getResponseHeader("Content-Type");

6)getAllResponseHeaders()方法

用于以字符串形式返回完整的HTTP头信息,其中包括Server、Content-Type和Content-Length。其语法格式如下:

getAllResponseHeaders()
例如,应用下面的代码调用getAllResponseHeaders()方法,将弹出对话框显示完整的HTTP头信息。

alert(http_request.getAllResponseHeaders());

4、XMLHttpRequest对象的常用属性

XMLHttpRequest对象提供了一些常用属性,通过这些属性可以获取服务器的响应状态及相应内容。下面将对XMLHttpRequest对象的常用属性进行介绍。

1)onreadystatechange属性

用于指定状态改变时所触发的事件处理器。在Ajax中,每个状态改变时都会触发这个事件处理器,通常会调用一个JavaScript函数。

例如,指定状态改变时触发JavaScript函数getResult()的代码如下:

http_request.onreadystatechange = getResult;

注意:在指定所触发的事件处理器时,所调用的JavaScript函数不能添加小括号及指定参数名。不过这里可以使用匿名函数。例如,需要调用带参数的函数getResult(),可以使用如下代码:

http_request.onreadystatechange = function(){
	getResult("添加的参数");
};

2)readyState属性

用于获取请求的状态。该属性包括5个属性值,如下表所示:


3)responseText属性

用于获取服务器的响应,表示为字符串。

4)responseXML属性

用于获取服务器的响应,表示为XML。这个对象可以解析为一个DOM对象。

5)status属性

用于返回服务器的HTTP状态码,常用的状态码如下表所示:


6)statusText属性

用于返回HTTP状态码对应的文本,如OK或Not Found(未找到)等。

手把手教你用89C52单片机驱动0.96寸OLED(IIC接口,附完整代码) 本文详细介绍了如何使用89C52单片机通过I2C接口驱动0.96寸OLED显示屏,包括硬件连接、I2C通信原理、SSD1306驱动芯片的初始化及显存管理技巧,并提供了完整的代码示例和常见问题排查方法,帮助电子爱好者快速掌握OLED显示技术。 阅读详情

相关推荐

信号完整性分析学习--16--传输线效应

传输线效应 说到传输线效应,大多数人都会想到一个经验法则,那就是: “当互连线的长度大于1/6倍的信号上升时间的空间延伸时,互连线就体现出传输线效应。” 上升时间越小越容易体现传输线效应。 由此可见,同一根互连线,它是否体现传输线效应,要看它要传输什么样的信号。下图所示,一根延时为15ps的互连线,当它传输上升时间为60ps的信号时就会体现传输线效应;当它传输上升时间为180ps的信号时就不体现传输线效应。

qq_29476769的博客 7283

ajax 和 http

`headers`:可选的,是即将被发送的自定义请求头,类型为 Object对象,例如:`{'Content-Type': 'Application/json'}`- `responseType`: 可选的,表示服务器响应的数据类型,可以是 'json', 'text' 等,默认值为 'json'注意,这里有很多可以做特殊处理,比如说,请求结束,成功,超时,出错,还可以设置请求头,请求数据类型。- `method`:可选的,是创建请求时使用的方法,类型为 字符串,默认值为: 'get'

m0_52289188的博客 1057

深度解读扫地机器人的导航原理

科技改变生活,不可否认科技的进步的确为我们的生活带来许多便捷,以智能家电为例,智能电饭煲、智能洗碗机、智能扫地机等产品已逐渐成为家庭的一分子,其中以扫地机表现最为抢眼。能做到智能规划清扫,收割了不少家庭主妇及科技爱好者的芳心。但扫地机并非一开始就这么智能,最初的扫地机只能做到随机式清扫,会频繁出现碰撞现象。 近年来,通过业界的不断努力,目前,扫地机器人已告别乱碰乱撞现象,能做到自主路径...

qq_38403231的博客 6506

让大家都能理解 XMLHttpRequest

XMLHttpRequest 是一个 JavaScript 对象,它能够在浏览器和 Web 服务器之间发送和接收数据。即使在从 Web 服务器读取了所有数据之后,XMLHttpRequest 仍然可以发送和接收数据,从而实现不重新加载页面就能够重写页面内容的功能。在当今的 Web 服务中,使用 XMLHttpRequest 发送和接收数据是非常必要的。

zhtbs的博客 3336

从一根USB线缆说起:深入浅出聊聊那些影响信号完整性和EMC性能的‘小细节’(双绞、屏蔽、360度搭接全解析)

本文深入探讨了USB线缆中影响信号完整性和EMC性能的关键细节,包括双绞线绞距、屏蔽层设计和360度搭接工艺。通过实验数据和实用技巧,揭示了这些‘小细节’如何显著影响高频信号质量和电磁兼容性,为工程师提供了从选购到系统设计的全面指南。

weixin_30824479的博客 440

通达信短周期指标盘中实时监控与预警选股实战

本文详细介绍了通达信短周期指标在盘中实时监控与预警选股中的实战应用。通过分时指标改造、多股同列监控技巧及预警策略优化,帮助短线交易者捕捉转瞬即逝的交易机会,提升选股效率与准确性。重点解析了如何避免假信号干扰及系统卡顿问题,并探讨了从预警到自动交易的进阶应用。

weixin_29230805的博客 912

XMLHttpRequest的基本使用

XMLHttpRequest 对象用于在后台与服务器交换数据。 - 在不重新加载页面的情况下更新网页 - 在页面已加载后从服务器请求数据 - 在页面已加载后从服务器接收数据 - 在后台向服务器发送数据

Argonaut_的博客 1560

ABAP FB05 清账实战:POSTING_INTERFACE_CLEARING 核心参数与业务场景解析

本文深入解析ABAP FB05清账操作中的核心函数POSTING_INTERFACE_CLEARING,详细讲解其关键参数与业务场景应用。通过实战案例展示收款清账(EINGZAHL)流程,提供常见错误排查方法,并分享批量清账优化与财务凭证集成的高级技巧,帮助开发者高效处理SAP财务模块清账需求。

weixin_33423874的博客 478

【js】js发送get请求

用原生js发送网络请求 var httpRequest = new XMLHttpRequest();//第一步:建立所需的对象 httpRequest.open('GET', 'url', true);//第二步:打开连接 将请求参数写在url中 ps:"http://localhost:8080/rest/xxx" httpRequest.send();//第三步:发送请求 将请求参数写在URL中 /** * 获取数据后的处理程

michiko98的博客 1万+

YOLO26涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLO26模型改进方法。该方法在标准softmax注意力机制中引入头部特定的sigmoid门控,通过增强注意力机制使模型更聚焦于关键信息。实验表明,该模块能显著提升模型性能,特别是在复杂背景和密集目标场景中,同时减少无关区域关注并提高检测精度。门控机制引入的非线性和稀疏性不仅提升了推理效率,还改善了训练稳定性,使模型能采用更大学习率并增强扩展性。此外,该方法有效缓解了"注意力下沉"现象,增强了模型对长距离目标的感知能力。

Ai缝合怪、助力小伙伴高效发论文 657

19、英国模式:银行体系的演变与现代金融架构

本文深入探讨了英国银行体系从专业化向全能银行的演变过程,分析了自律监管模式的优劣,并解析了围栏制度对金融稳定的影响。同时,文章还介绍了信用合作社、建筑协会和投资银行的角色与转型,全面展示了英国金融体系的多样性与复杂性,以及其在全球金融市场中的重要作用。

embedding5hiker的博客 105

AJAX的创建

AJAX ajax=(异步JavaScript和XML) 指一种创建交互式网页应用的网页开发技术。 通过后台与服务器进行少量的数据交换,实现网页异步更新。 ajax不需要任何浏览器插件,但需要用户允许javascript在浏览器上执行。 ajax的优点 ●不需要重新加载整个页面的情况下,可以与服务器交换数据并更新部分网络内容;传统的网页(不使用AJAX)如果需要更新内容,必须重新...

yezi__6的博客 386

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏5(附项目源码,完结)

本期是本项目的最后一篇,主要内容是配置环境、生成不同敌人、结束重开。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2575

ajax的技术核心,ajax技术的核心内容:XMLHttpRequest对象详解

XMLHttpRequest对象是Ajax技术最核心内容,所有现代浏览器均支持XMLHttpRequest对象,XMLHttpRequest用于在后台与服务器交换数据,这意味着可以再不重新加载整个网页的情况下,对网页的某部分进行更新。下面分析XMLHttpRequest对象的基本知识。1、创建XMLHttpRequest对象在不同的浏览器中创建XMLHttpRequest对象的方法不同,其中,IE...

weixin_29338295的博客 602

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ASP.net AJAX技术详解(3) 之 XMLHttpRequest对象

 大家一起来学习AJAX,如果有什么问题,给我发Email:warensoft@foxmail.com 如果想了解更多关于DotNet方面的技术资料,文章以及视频,请到本团队的主页:www.warensoft.cn 通过上节的分析,我们知道Ajax 中向服务器提出请求以及截获响应的功能都是通过XMLHttpRequest对象实现的。在这一小节中,我们详细的讨论一下该对象的结构及使用。

2193

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

AJAX入门详解

目录简介XMLHttpRequest创建一个 XMLHttpRequest 对象属性事件句柄方法XMLHttpRequest.open()XMLHttpRequest.send()XMLHttpRequest.setRequestHeader()AJAX - PHPAJAX - XMLAJAX - 数据库 简介 AJAX 的完整拼写是: Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 可以看出,AJAX并不是一门新的语言,而是一种方法,能够使J

别下完这场雪 308

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Ajax学习笔记

);});//其中第一个参数是请求的服务器地址//第二个参数书发送给服务器的参数//第三个参数是回调函数,即携带服务器返回来的数据或:$.ajax({data: { name: "John", time: "2pm" } ,//url请求参数:可选},});

qq_57093115的博客 1175

XMLHTTPRequest的属性和方法简介

     设计AJAX时使用的一个重要的技术(工具)就是XMLHTTPRequest对象了。XMLHttpRequest对象是当今所有AJAX和Web 2.0应用程序的技术基础。尽管软件经销商和开源社团现在都在提供各种AJAX框架以进一步简化XMLHttpRequest对象的使用;但是,我们仍然 很有必要理解这个对象的的属性和方法简介。      1、XMLHTTPRequest对象什么是?   ...

weixin_33811539的博客 87

【速成之路】网页编程必会的Ajax——XMLHttpRequest对象

🎉个人主页:这个昵称我想了20分钟 ✨往期专栏: 【速成之路】jQuery       【速成之路】SQLserver 🔓本期专栏:【速成之路】Ajax XMLHttpRequest对象🎆初始化XMLHttpRequest对象🎆XMLHttpRequest对象的常用属性和事件1.readyState属性2.response Text属性3.responseXML属性4.status属性5.statusText属性6.onreadystatechange事件🎆XMLHttpRequest对象的常用方.

m0_61684063的博客 2729

【DOM编程艺术】XMLHttpRequest对象

Ajax技术的核心就是XMLHttpRequest对象。这个对象充当着浏览器脚本(客户端)与服务器之间的中间人的角色。 以往的请求都由浏览器发出,而Javascript通过这个对象可以自己发送请求,同时也自己处理响应。   不同浏览器实现XMLHttpRequest对象的方式不太一样。为了保证跨浏览器,你不得不为同样的事情写不同的代码分支。 <!DOCTYPE html...

weixin_34192732的博客 642

php ajax xmlhttprequest,AJAX的XMLHttpRequest对象使用详解

这次给大家带来AJAX的XMLHttpRequest对象使用详解,使用AJAX的XMLHttpRequest对象的注意事项有哪些,下面就是实战案例,一起来看一下。AJAX是一种创建交互式网页应用的网页开发技术,是异步Javascript和XML的集合。其核心是XMLHttpRequest对象,可以在不向服务器端提交整个页面的情况下,实现局部更新网页,它是AJAX的Web应用程序架构的一项关键技术。...

weixin_36286774的博客 300

ajax的四种技术中控制通信,Ajax常见面试题

精品文档1. Ajax有四种技术组成:DOM,CSS,JavaScript,XmlHttpRequest中控制文档结构的是:()A DOMB CSSC javascriptD XMLHttpRequest参考答案:A2. 在Ajax的四种技术中,控制通信的是哪一个?()A DOMB CSSC javascriptD XMLHttpRequest参考答案:D3. 在Ajax的四种技术中,JavaSc...

weixin_39532628的博客 925

ajax的使用详解

传统的web交互是用户触发一个http请求服务器,然后服务器收到之后,在做出响应到用户,并且返回一个新的页面,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间,这导致了用户界面的响应比本地应用慢得多。

m0_56132701的博客 672

AJAX技术的核心

//创建一个XMLHttpRequest对象 ,利用此对象与服务器进行通信 是AJAX技术的核心 /** * 获取XmlHttpRequest对象 */ function getXMLHttpRequest() { var xmlHttpReq=null; if (window.XMLHttpRequest) {//Mozilla 浏览器 ...

weixin_34415923的博客 183

交互技术之AJAX

AJAX: Asynchronous Javascript And Xml (异步javascript 和xml ) 是指一种创建交互式网页应用的网页开发技术

daimenglaoshi的博客 385

php xhrx响应对象,PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、...

异步对象a)创建异步对象b)设置请求的url等参数c) 发送请求d)注册时间e)在注册的事件中获取返回的内容并修改页面显示的内容布尔类型不能直接用echo输出常见的响应状态Ajax概念在浏览器中,我们也能够不刷新页面,通过ajax的方式去获取一些新的内容,类似网页有微博,朋友圈,邮箱等单词解释:Asynchronous Javascript And XML(异步JavaScript和XML),他...

weixin_35466750的博客 209
上一篇: Java Socket(套接字)编程、TCP和UDP通信过程详解
下一篇: Ajax技术之与服务器通信-发送请求与处理响应
Yes_JiangShuai
博客等级 码龄10年 149粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值