2010-03-25 195 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將不足以實現這一目標。