如何解决从 xhr 获取 readyState 0 和空响应
嘿,我正在使用 JavaScript 进行编码,并将 Node.js 作为我的运行时,我想设计一个页面,用户可以在其中查看表格中的文件列表。 我的问题是我的 getFiles 方法得到一个空响应和 readyState 0:
function getFiles(subject,fileholderid) {
const fileholder = document.getElementById(fileholderid);
let requestedFilesList = "";
var xhr = new XMLHttpRequest();
console.log('1');
xhr.onreadystatechange = new function() {
console.log('2');
if(xhr.readyState < 4) {
fileholder.innerHTML = "";
}
fileholder.innerHTML = "<table cellpadding='0' cellspacing='0' border='0'><tbody>" + xhr.responseText + "</tbody></table>";
console.log(xhr.responseText);
requestedFilesList = 'file-api';
if(requestedFilesList != "") {
console.log('5');
xhr.open("POST","http://localhost:5000/" + requestedFilesList + "?folder=" + subject,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send();
}
}
}
我的 app.js app.post 方法:
app.post('/file-api',(req,res) => {
let folder = req.query.folder;
console.log(folder);
let contents = "";
let readingDirectory = `./data/${folder}`;
fs.readdir(readingDirectory,function (err,files) {
if (err) { console.error(err) }
else if (files.length > 0) {
files.forEach(function (value,index,array) {
fs.stat(`${readingDirectory}/${value}`,stats) {
let filesize = ConvertSize(stats.size);
var str = value.split('.p');
var name = str[0];
var ext = 'p' + str[1];
contents += "<tr><td>" + name + "</td><td>" + ext + "</td><td>" + filesize + "</td><td><span id='viewBtn" + files.indexOf(value) + "'><span id='view'></span><h3 class='icnDesc'>Angucken</h3></span><a id='downloadBtn" + files.indexOf(value) + "'><span id='download'></span><h3 class='icnDesc#>Download</h3><iframe id='dwnldInvisible' style='display: none;'></iframe></a><span id='deleteBtn" + files.indexOf(value) + "'><span id='</td></tr>"
console.log(contents);
if (index == (array.length - 1)) {
setTimeout(function () {
res.status(200);
res.setHeader("Content-Type","text/html")
res.send(contents);
},responsedelay);
}
})
})
} else {
setTimeout(function () {
res.send(contents);
},responsedelay)
}
})
})
可能需要一点帮助。 谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。