设置为XMLHttpRequest异步不起作用

我正在尝试学习Ajax,现在我不知道如何设置XMLHttpRequest Asynchronous。我已经尝试了一些关于ajax的其他帖子,但无法理解它。对不起,如果这已经问过。


在下面的代码中,我尝试在console.log中使用XMLHttpRequest对象。我已将其链接到同一文件夹中的本地文本文件。


问题是,当将request.open参数设置为true时,它不起作用。它只在设置为false时有效,但我读到这不是异步的。


我正在使用XAMPP作为服务器。我也尝试过不同的服务器表格学校。


如果有什么问题请问我。谢谢


var request;

if(window.XMLHttpRequest){

    request = new XMLHttpRequest();

}else{

    request = new ActiveXObject("Mircosoft.XMLHTTP");

}

//this open function 

request.open('GET', 'text.txt', true);

request.send();

if(request.status===200){

console.log(request);

document.writeln(request.responseText);

}


偶然的你
浏览 646回答 2
2回答

慕工程0101907

异步的全部意义在于,在响应到达之前,它不会锁定JavaScript引擎。因此,使用当前代码,您将尝试在响应存在之前读取它。您需要使用事件处理程序在数据到达后处理它。function processData() {    document.writeln(this.responseText);}var request = new XMLHttpRequest();request.open('GET', 'text.txt');request.addEventListener("load", processData);request.send();

手掌心

您必须使用request.onreadystatechange函数等待响应var request;if(window.XMLHttpRequest){    request = new XMLHttpRequest();}else{    request = new ActiveXObject("Microsoft.XMLHTTP");}request.onreadystatechange = function(){   if(request.readyState == 4 && request.status == 200)    {      document.writeln(request.responseText);    }}//this open function request.open('GET', 'text.txt', true);request.send();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript