XHR的用法详细解读

ajax是asynchronous javascript and XML的简写,中文翻译是异步的javascript和XML,这一技术能够向服务器请求额外的数据而无须卸载页面,会带来更好的用户体验。虽然名字中包含XML,但ajax通信与数据格式无关。

ajax包括几个步骤:

1:创建ajax请求,
2:发出http请求
3:收到服务器传回的消息
4:更新网页数据、

概括起来,就是一句话,ajax通过原生的XMLHttpRequest对象发出HTTP请求,得到服务器返回的数据后,再进行处理。

创建

ajax技术的核心是XMLHttpRequest对象(简称XHR),这是由微软首先引入的一个特性,其他浏览器提供商后来都提供了相同的实现。XHR为向服务器发送请求和解析服务器响应提供了流畅的接口,能够以异步方式从服务器取得更多信息,意味着用户单击后,可以不必刷新页面也能取得新数据

IE5是第一款引入XHR对象的浏览器。在IE5中,XHR对象是通过MSXML库中的一个ActiveX对象实现的,而IE7+及其他标准浏览器都支持原生的XHR对象

创建一个XHR对象,也叫实例化一个XHR对象,因为XMLHTTPRequest()是一个构造函数。下面是创建XHR对象的兼容写法
  
在这里插入图片描述

var xhr;
if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();
}else{
    xhr = new ActiveXObject('Microsoft.XMLHTTP');
}

[注意]如果要建立N个不同的请求,就要使用N个不同的XHR对象。当然可以重用已存在的XHR对象,但这会终止之前通过该对象挂起的任何请求。

发动请求

open();

在使用xrh的时候第一个调用的是open方法,如下,该方法接受3个参数,

xrh.open('GET','example.php',false);

open()方法的第一个参数用于指定发送请求的方式,这个字符串,不区分大小写,但通常使用大写字母。”GET”和”POST”是得到广泛支持的.

‘GET’用于常规请求,它适用于URL完全指定的资源。当请求对服务器没有任何副作用是可缓存的情况下,

‘POST’方法常用与HTML表单,他在请求主题中额外包含数据且这些数据常存在服务器上的数据库中。相同的URL的重复POST请求从服务器的得到的相应可能不同

除了”GET”和”POST”之外,参数还可以是”HEAD”、”OPTIONS”、”PUT”。而由于安全风险的原因,”CONNECT”、”TRACE”、”TRACK”被禁止使用.

2. open()的第二个参数是URL,该URL对于执行代码的当前页面,且只能想同一域中使用相同协议和端口的URL发送请求。

3.open()的第三个参数是表示是否异步发送请求的值,如果不填写。默认身高true,表示异步发送,

4.如果请求一个手密码保护的URL用于认证的用户和密码作为第4和第5个参数传递给open()方法。

send()

send()方法接受一个参数,即作为请求主题发送的数据。调用send()方法后,请求被分配到服务器。

如果是GET方法,send()方法无参数,或参数为null;如果是POST方法,send()方法的参数是要发送的的数据。
3.open()的第三个参数是表示是否异步发送请求的值,如果不填写。默认true,表示异步发送,

4.如果请求一个手密码保护的URL用于认证的用户和密码作为第4和第5个参数传递给open()方法。

send()

send()方法接受一个参数,即作为请求主题发送的数据。调用send()方法后,请求被分配到服务器。

如果是GET方法,send()方法无参数,或参数为null;如果是POST方法,send()方法的参数是要发送的的数据。

xhr.open(“GET”,“xxx.php”,true)
xhr.send(null);

可以通过开发者工具查看XHR
谷歌的chrome浏览器可以查看

F12 或者Fn+F12打开控制台

点菜单的网络Network

All XHR Js CSS Img 等等,点XHR

多版本浏览器兼容需要加上

	function createXmlHttp() {
		var xmlHttp;
		try {
			xmlHttp = new XMLHttpRequest();
		} catch (e) {
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
				}
			}

		}
		return xmlHttp;
	}
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XHR 是 XMLHttpRequest 的缩写,它是一种可以在不重新加载整个页面的情况下,通过 JavaScript 发送 HTTP 请求和接收服务器响应的技术。在网页开发中,我们经常会用到 XHR 来实现异步数据交互,比如获取远程数据、发送表单数据等等。 要实现一个简单的 XHR 请求,我们可以通过以下几个步骤来操作: 1. 创建一个 XMLHttpRequest 对象 2. 指定请求的方法、URL 和是否异步 3. 发送请求 4. 监听 XHR 对象的状态变化,并在接收到响应后处理数据 下面是一个简单的示例代码: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', 'https://api.example.com/data', true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { console.log('成功收到响应:', xhr.responseText); } else { console.log('请求出错:', xhr.status); } } }; ``` 在这个例子中,我们创建了一个 XHR 对象,并使用 GET 方法向 https://api.example.com/data 发送了一个异步请求。然后,我们监听 XHR 对象的状态变化,当 readyState 变为 XMLHttpRequest.DONE 时,表示请求完成。此时我们可以通过 status 属性来判断请求的状态,通过 responseText 属性来获取服务器返回的数据。 总之,XHR 是一种非常有用的技术,可以让我们在网页中实现更加流畅的用户体验,并为用户提供更加丰富的交互功能。希望这个回答能够帮助你更好地了解并使用 XHR

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值