【问题标题】:Can Apache be configured to allow JS in browser to get server directory contents?Apache 可以配置为允许浏览器中的 JS 获取服务器目录内容吗?
【发布时间】:2016-03-01 19:24:25
【问题描述】:

如果我在我的 Apache DocumentRoot 目录中有一个图像目录,并且我希望我的网站中的 JavaScript 知道该目录中有哪些图像可用,我认为有两个选项:

  1. 提供来自服务器端脚本的图像列表,该脚本可以 检查目录并返回其中的项目列表。
  2. 使用服务器上的脚本/可执行代码在该目录中构建一个文件(例如“contents.js”)。该文件将列出文件 包含在目录中,前端的 JS 就可以 访问此文件。

但是,是否可以将 Apache 配置为提供对该目录的访问,以便 JS 可以向服务器请求目录内容?也许使用 mod_autoindex 或更简洁的东西?有人做过吗?

我实际上并不想将它用于图像,所以这只是一个假设的例子。

谢谢

【问题讨论】:

    标签: javascript apache mod-autoindex


    【解决方案1】:

    Javascript 只能通过 HTTP 与服务器通信。没有秘密后门或任何“获取目录内容”的东西。 Apache 必须提供 一些 文档,Javascript 可以解释这些文档以传达目录中的文件。

    可以配置 Apache 以提供目录列表,但是这些通常是 HTML 页面,您需要在 Javascript 中对其进行解析以从中提取信息。不是不可能,但肯定不是优雅的。此外,任何人都必须公开查看这些目录列表(当然,任何解决方案都会公开该信息,这是没有办法的)。

    Javascript 可以更轻松地处理 JSON 数据,或者 XML 数据。我不知道任何以 JSON 格式输出目录列表的 Apache mod。因此,从尝试获取该数据的 Javascript 文件的角度来看,让服务器端 REST 端点提供自定义 JSON(或只是一个静态 .json 文件,您可以根据需要进行更新)是一个更优雅的解决方案。

    【讨论】:

    • 感谢您的回答。我想你一定是对的。我希望有人编写了一个 JS 插件来解析/遍历 HTML Apache 目录列表,或者有一个不同的核心 Apache 模块可以将目录内容返回为 XML 或 JSON 或其他内容。我想两者都没有。
    猜你喜欢
    • 2019-03-20
    • 2021-01-25
    • 2015-02-21
    • 1970-01-01
    • 2012-09-19
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多