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 属性。

扫描二维码关注公众号,回复: 9715376 查看本文章

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

document.body.innerHTML=xhr.responseText;

responseXML 属性

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

发布了161 篇原创文章 · 获赞 71 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_44034384/article/details/98060629
今日推荐