如何在ajax中返回文本文件值Asynchronous"Synchronous正在被弃用”;

how do I return text file value Asynchronous in ajax? "Synchronous is getting deprecated"

本文关键字:Synchronous quot Asynchronous ajax 返回 文本 文件      更新时间:2023-09-26

我尝试使用ajax异步,但值只是返回"undefined"。请不要Jquery!!

function readTextFile(file){
    if(window.XMLHttpRequest) {
        var rawFile = new XMLHttpRequest();
    }else {
        var rawFile = new ActiveXObject("Microsoft.XMLHTTP");
    }
    rawFile.open("GET", file, false);
    rawFile.send(null);
    //alert(rawFile.responseText);
    var textvalue = rawFile.responseText;
    return textvalue;
}

var str = readTextFile(file);

请尝试此解决方案:

function readTextFile(file) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {
        var textvalue = xhttp.responseText;
    }
  };
  xhttp.open("GET", file, true);
  xhttp.send();
}

您需要使用onreadystatechange事件和回调:

function readTextFile(file, callback){
    if(window.XMLHttpRequest) {
        var rawFile = new XMLHttpRequest();
    }else {
        var rawFile = new ActiveXObject("Microsoft.XMLHTTP");
    }
    rawFile.onreadystatechange = function() {
        if (rawFilereadyState == 4 && rawFile.status === 200) {
           callback(rawFile.responseText);
        }
    }
    rawFile.open("GET", file, false);
    rawFile.send(null);
}

readTextFile(file, function(str) {
  // use the str
});