为了账号安全,请及时绑定邮箱和手机立即绑定

设置为XMLHttpRequest异步不起作用

设置为XMLHttpRequest异步不起作用

偶然的你 2019-04-24 15:11:31
我正在尝试学习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);}
查看完整描述

2 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

异步的全部意义在于,在响应到达之前,它不会锁定JavaScript引擎。因此,使用当前代码,您将尝试在响应存在之前读取它。


您需要使用事件处理程序在数据到达后处理它。


function processData() {

    document.writeln(this.responseText);

}


var request = new XMLHttpRequest();

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

request.addEventListener("load", processData);

request.send();


查看完整回答
反对 回复 2019-05-17
?
手掌心

TA贡献1942条经验 获得超3个赞

您必须使用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();


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 645 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信