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 属性。
标签:XML,false,响应,xhr,Ajax,responseText,服务器,open 来源: https://blog.csdn.net/qq_44034384/article/details/98060629