Comment accéder aux dossiers locaux dans ajax en utilisant le fichier: /// F: / foldername? Mais cela fonctionne pour http: //

Ici, je crée dynamiquement une liste de noms de fichiers en utilisant AJAX jQuery en utilisant le code suivant!

$(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> 

Vous ne pouvez pas.

La plupart des navigateurs bloqueront l'accès (par XMLHttpRequest) au système de fichiers local et ceux qui ne fournissent pas un mécanisme de lecture des répertoires.


Par exemple:

Chrome dit:

XMLHttpRequest ne peut pas charger le fichier: /// Users / me / tmp /. Les demandes d'origine croisée ne sont prises en charge que pour les programmes de protocole: http, données, chrome, chrome-extension, https, chrome-extension-resource.

Firefox dit:

NS_ERROR_DOM_BAD_URI: Accès à l'URI restreint refusé

… bien que pour un fichier plutôt qu'un répertoire, il répertorie le contenu (à condition que le fichier soit dans ou sous le même répertoire que le document HTML).


Mais f: /// foldername peut accéder dans le navigateur. Mais n'hésitez pas à accéder à js! Pourquoi?

L'accès aux données sur votre disque dur, en tant que personne contrôlant le navigateur, est différent de l'accès à ces données à certains JavaScript dans un fichier que vous pourriez avoir téléchargé de n'importe où et qui pourrait faire n'importe quoi avec lui (comme l'envoi À la personne qui a écrit le JS). Voir aussi cette question .