2010-03-25 94 views
1

使用jQuery.ajax()读取“./ex.html”返回第一个警报框中文件 的预期内容。使用相同的呼叫,只是将请求更改为“./”,不会在第二个警报框中返回预期的目录列表。如何使用jQuery .ajax()读取目录?

<html> 
<head> 
</head> 
<body> 
<script type="text/JavaScript" src="jquery.js"></script> 
<script type="text/JavaScript"> 
    alert($.ajax({type: "GET", url: 'ex.html', async: false}).responseText); 
    alert($.ajax({type: "GET", url: '.',  async: false}).responseText); 
</script> 
</body> 
</html> 

直接访问文件时:$ firefox ex.html结果如所述。 $ firefox .显示:

文件的索引:///家/ cwhii /工作/ JQ/EX

最高一级目录

名大小上次修改

ex.html 1 KB 03/24/2010 10:29:37 PM

jquery.js 161 KB 03/17/2010 05:16:58 PM

然后单击ex.html链接,在第一个警报框中生成预期文件内容,在第二个警报框中生成目录列表。

总而言之,在命令行上调用firefox和文件名不会产生目录列表,但当通过目录页面上的链接导航到同一个文件时,第二个警告框会显示列表。

此外,我以上述所有方式调用Google Chrome浏览器5.0.307.11测试版,并且即使 $ google-chrome .产生目录列表页面,所有结果都不会在警报框中产生目录列表。

回答

11

您将需要某种服务器端代码来生成目录中的文件/文件夹列表。您的Web服务器很可能将该请求重定向到目录的默认页面(index.html,default.html等),或者它会抛出404/403/etc页面,因为您请求的页面没有存在。

+0

我会upvote你,但我喜欢你目前的点...;) – deceze 2010-03-25 05:44:10

+0

噢,现在它改变了... +1 :) – deceze 2010-03-25 12:20:32

3

Javascript不会执行“目录”或“文件”,它只能用于URL。无论您的服务器响应请求/是否都有Javascript有权访问。

1

如果网页服务器有目录浏览/列表转向,那么这个可能工作。

理想情况下,您需要创建一个服务器端页面/脚本来将目录列表返回为JSON。

0

你需要写一个PHP目录列表脚本,并通过它应当由$就解析目录...

裸jQuery将不足以实现这一目标。