如何使用file:///F:/foldername访问ajax本地文件夹?但它适用于http://.



这里我使用AJAX jQuery使用以下代码动态创建一个文件名列表!

$(window).load(function () {
    var fileExt = ".csv";
    $(document).ready(function () {
        $.ajax({
            url: 'file:///F:/foldername/',
            success: function (data) {
                console.log(data);
                $("#fileNames").html('<ul>');
                $(data).find("a:contains(" + fileExt + ")").each(function () {
                    $("#fileNames").append('<li><input id='chckId' type = 'checkbox'/>' + $(this).text() + '</li>');
                });
                $("#fileNames").append('</ul>');
            },
            failure: function (response) {
                alert(response);
            }
        });
    });
});
<div id='fileNames' class="panel-body" style="display: block;"></div>

你不能。

大多数浏览器将完全阻止对本地文件系统的访问(通过XMLHttpRequest),而那些不提供读取目录机制的浏览器。


例如:

Chrome说:

XMLHttpRequest无法加载文件:///Users/me/tmp/。跨域请求只支持以下协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

Firefox说:

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

虽然对于文件而不是目录,但它列出内容(前提是该文件与HTML文档在同一目录中或在同一目录下)。

但是f:///foldername可以在浏览器中访问。但是无法在js中访问!为什么?

把硬盘上的数据交给你,作为控制浏览器的人,与把数据交给文件中的一些JavaScript是不同的,这些文件可能是从任何地方下载的,可能会对它做任何事情(比如把它发送给写JS的人)。

最新更新