带有 xmlhttp 的 Apache2

Apache2 with xmlhttp

我有一个 JavaScript 函数,我将服务器端目录的 path/name 按顺序传递给 return 子目录的 paths/names大批。 添加了额外的 console.log() 以检查流程。

以下函数来源于此 answer,然后进行了一些调整以满足需要。

function loadSubDir(dir) {
  console.log("Initial method call with ", dir);
  let res = null;
  let path = null;
  let xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", dir, false);
  xmlhttp.send();
  if (xmlhttp.status == 200) {
    res = xmlhttp.response;
    $(res)
      .find(" td > a ")
      .each(function() {
        path = $(this).attr("href");
        console.log("Values for Categories : ", path);
        subDirs.push(path);
      });
  }
  subDirs.shift();
  return subDirs;
}

这在我的本地 Apache 服务器上工作正常,没有任何问题,我使用默认的 Apache 配置,只为这个 JavaScript 文件可用的目录添加文档根目录。

但是如果我在另一个 Apache 服务器环境中使用相同的实现,这个 失败 。放置日志后,我注意到当 运行 在服务器上时,“类别值”日志不会出现。

是否需要任何其他配置或可能是什么原因?

谢谢!

问题是我如何实现 $(res).find() 方法。在我本地的 Apache 服务器环境中,响应是;

<html>
 <head><title>Index of /XXXX-XXX</title></head>
 <body>
  <h1>Index of /XXXX-XXX</h1>
  <table>
   <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr>
   <tr><th colspan="5"><hr></th></tr>
   <tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/">Parent Directory</a></td><td>&nbsp;</td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-14 17:10  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-15 11:25  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-15 11:25  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-14 18:00  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-14 17:53  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-15 11:24  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-14 17:53  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="XXX/">XXX/</a></td><td align="right">2020-12-14 17:54  </td><td align="right">  - </td><td>&nbsp;</td></tr>
   <tr><th colspan="5"><hr></th></tr></table><address>Apache/2.4.29 (Ubuntu)Server at localhost Port 80</address>
 </body>
</html>

所以.. $(res).find(" td > a ") 有效.. 由于我们使用的是 Apache o docker,响应是;

<html>
 <head>
  <title>Index of /XXXX-XXX</title>
 </head>
 <body>
  <h1>Index of /XXXX-XXX</h1>
  <ul><li><a href="/"> Parent Directory</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  <li><a href="XXX/">XXX/</a></li>
  </ul>
 </body>
</html>

这里,而不是 $(res).find("td > a") 我需要使用) 方法为 $(res).find("li > a").

然后继续执行。