Soruyu sorduğumda sunucuda javascript
liste dosyaları, "javascript
, sunucu dosya sistemine erişemiyor çünkü bir client-side scripting language
". Ama cevabın sadece kısmen doğru olduğunu düşündüm, çünkü tarayıcı dirlisting
etkinse, sunucu dizininin içeriğini listeleyebilir. Bu yüzden, xml
biçiminde ihtiyacınız olan verileri görebildiğinizde, cgi
'u kullanmaya gerek kalmadan çıktıyı ayrıştırmaya çalıştım. Ben lighttpd
kullanıyorumJavaScript'i kullanarak liste sunucusu dizini XHR
ve lighttpd.conf
önemli girdileri şunlardır: Yani burada ne yaptım XHR
sınamak için kullanılan
dir-listing.activate = "enable" #enables directory listing
dir-listing.auto-layout = "disable" #simplifies the list style
mimetype.assign = (".xml" => "text/xml") #deals with xmls
test.xml
şuna benzer:
<?xml version="1.0"?>
<anchors>
<a>foo</a>
<a>bar</a>
</anchors>
Dizin girişi sayfasında, lighttpd
mod_dirlisting.so
:
<?xml version="1.0" encoding="iso-8859-1"?>
<h2>Index of /directory/</h2>
<div class="list">
<table summary="Directory Listing" cellpadding="0" cellspacing="0">
<thead><tr><th class="n">Name</th><th class="m">Last Modified</th><th class="s">Size</th><th class="t">Type</th></tr></thead>
<tbody>
<tr><td class="n"><a href="../">Parent Directory</a>/</td><td class="m"> </td><td class="s">- </td><td class="t">Directory</td></tr>
<tr><td class="n"><a href="foo">foo</a></td><td class="m">2015-Jan-03 13:24:12</td><td class="s">39.4K</td><td class="t">application/octet-stream</td></tr>
</tbody>
</table>
</div>
oluşturmak için kullanılan
test.html
sayfa: (bir uyarı kutusunda 'foo' get) iyi çalışır, ancak tüm bunlar
<html><head></head><body><script>
if (window.XMLHttpRequest) var request = new XMLHttpRequest();
else var request = new ActiveXObject('Microsoft.XMLHTTP');
request.open('post', 'test.xml', true);
request.send();
if (request) request.onreadystatechange = function() alert(request.responseXML.getElementsByTagName('a')[1].childNodes[0].nodeValue);
</script></body></html>
Ben request.open
dizin yerine xml
, hiçbir şey, hatta içeri girince hata konsolu
'(request.readyState' kod örneği kısalık için ihmal edilmiştir, ve, 'xml' dosya mod_dirlisting.so' sunucu modülü' tarafından oluşturulan, bu nedenle onun yarı yanlış bir çıkış yönetemeyeceğiniz' ve nbsp' vs) herhangi bir şekilde, ama aslında benim sorununun doğrudan cevabı olan 'request.responseType = 'document'' kullanarak çıktısını ayrıştırmaktan vazgeçebilirim. Teşekkür ederim. – Ulrik