繁体   English   中英

如何使用 AJAX 创建服务器端目录列表?

[英]How do I use AJAX to create a list of a server-side directory?

鉴于我所看到的关于这个概念的大多数问题都不清楚他们的最终目标,我想从一些 Python 代码开始,并将其用作这个问题的基础。

from glob import glob

print(glob('*'))

前面的代码在glob 模块的帮助下打印出它在目录中检测到的所有文件和/或文件夹的列表( *标记脚本正在运行的当前目录)。 因此,如果我要在包含一个文件夹和两个图像的目录中运行该脚本,结果输出将是以下列表:

['folder1','image1.png','image2.png','script.py']

我想要做的是在 Javascript 中为 Web 服务器本地的内容重新创建此功能。 (为了让生活更轻松,假设这一切都在localhost运行)据我所知,AJAX 是目前最好的 Javascript 文件处理方法。 有了它,我已经能够向我想要的文件夹调用httpsRequest ,但我设法获得的唯一响应是我认为是服务器文件浏览器的 HTML 转储。 尝试在控制台中使用诸如responseText修饰符会产生<empty sting>响应。 对于上下文,这是我目前一直在使用的代码:

function() {
    httpRequest = new XMLHttpRequest();

    if (!httpRequest) {
        alert("Giving up :( Cannot create an XMLHTTP instance");
        return false;
    }
    httpRequest.onreadystatechange = console.log(httpRequest);
    httpRequest.open('GET', '/testing/');
    httpRequest.send();
}

必须喜欢XY 问题

为什么这不起作用

AJAX 的功能不是为动态文件处理而设计的,如 Python 的glob 它主要设计为一次交换一个文件的信息,并能够在XMLHttpRequest更改该文件。 这不是缺点,因为它对于处理 JSON 中的配置文件或与 PHP 数据库通信很有用。 还值得提出切向垂直的评论中提到的一些内容:

如果 Web 服务器设置为提供一个目录列表,您将只获得一个目录列表,而并非总是如此。 [也就是说]出于安全原因,您可能不想这样做。

“那么如何创建动态的文章列表以显示在我的 HTML 中?”

还有我们的X。

您真正想要的是静态站点生成器 有了它,您将能够创建和编译一个站点,为您处理创建该文章列表。

对于那些寻求进一步阅读的人,请记住,SSG 经常用于参考Jamstack。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM