我在HTML页面上有一个文本框和一个按钮。我希望客户端能够将任何目录的路径传递给服务器,然后服务器使用目录内容进行响应。
我认为问题出在var folderToBeRead中。我尝试通过document.queryselector传递textbox.value,但终端显示“未定义文档”
//服务器
const express = require('express');
const app = express();
var cors = require('cors');
var fs = require('fs');
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
next();
});
var folderToBeRead = './folder' //I want this to be the chosen path from client
fs.readdir(folderToBeRead , function (err, files) {
app.get('/dir',(req,res) => {
res.json(files);
});
});
app.listen(5000);
//客户
var url_data = 'http://localhost:5000/dir';
function show(){
$.ajax({
url: url_data,
type: "GET",
dataType: "json",
header: "Access-Control-Allow-Origin",
success: function (response) {
response.forEach(elemento => {
$("#content").append(`<p>${elemento}</p>`);
});
$('#btn1').css({display:'none'});
$('#btn2').css({display:'block'});
},
error: function (xhr, status) {
console.log("error");
}
});
};
function hide(){
$("#content").html(``);
$('#btn2').css({display:'none'});
$('#btn1').css({display:'block'});
};
答案 0 :(得分:0)
首先,我看不到在客户端调用中传递到服务器的任何数据,并且在将数据发送到服务器时,它应该是POST而不是get。
尝试:
$.ajax({
url: url_data,
type: "POST",
data: "YOUR_DATA_HERE",
dataType: "json",
header: "Access-Control-Allow-Origin",
success: function (response) {
response.forEach(elemento => {
$("#content").append(`<p>${elemento}</p>`);
});
$('#btn1').css({display:'none'});
$('#btn2').css({display:'block'});
},
error: function (xhr, status) {
console.log("error");
}
});
此外,为什么要使用json传递单个字符串?