带有 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> </td><td align="right"> - </td><td> </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> </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> </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> </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> </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> </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> </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> </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> </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").
然后继续执行。
我有一个 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> </td><td align="right"> - </td><td> </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> </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> </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> </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> </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> </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> </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> </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> </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").
然后继续执行。