微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ajax 服务器响应

在这里插入图片描述

一、异步 - True 或 False?

AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。

XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:

xhr.open("get","test1.PHP",true);

二、Async = true

当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数

xhr.open("get","test1.PHP",true);
xhr.send(null);
xhr.onreadystatechange = function(){ // 回调函数
		if(xhr.readyState == 4){
			if(xhr.status == 200){
				var data = xhr.responseText; // 获取响应数据(以文本形式)
                console.log(data);
		}
	}
}

三、Async = false

如需使用 async = false,请将 open() 方法中的第三个参数改为 false:

xhr.open("GET","test1.txt",false);

不推荐使用 async = false,但是对于一些小型的请求,也是可以的。

JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。

注意:当您使用 async = false 时,请不要编写 onreadystatechange 函数,把代码放到 send() 语句后面即可:

xhr.open("GET","test1.txt",false);
xhr.send(null);
document.body.innerHTML=xhr.responseText;

四、服务器响应

如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性

属性 描述
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。

responseText 属性

如果来自服务器的响应并非 XML,请使用 responseText 属性

responseText 属性返回字符串形式的响应,因此您可以这样使用:

document.body.innerHTML=xhr.responseText;

responseXML 属性

如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐