是否可以将 Apache 配置为允许浏览器中的 JS 获取服务器目录内容

Can Apache be configured to allow JS in browser to get server directory contents?

本文关键字:获取 JS 服务器 浏览器 Apache 配置 是否      更新时间:2023-09-26

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

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

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

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

谢谢

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

您可以将 Apache 配置为提供目录列表,但是这些通常是 HTML 页面,您需要在 Javascript 中解析这些页面才能从中提取信息。不是不可能,但肯定不优雅。此外,这些目录列表将在必要时对任何人公开可见和可用(好吧,任何解决方案都会公开该信息,这是没有办法的)。

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