Lire le fichier: // URL dans IE XMLHttpRequest

Je suis le développement d'une application JavaScript qui est destiné à être exécuté à partir d'un serveur web (sur http) ou à partir du système de fichiers (sur une URL file://).

Dans le cadre de ce code, j'ai besoin d'utiliser XMLHttpRequest pour charger les fichiers dans le même répertoire que la page et dans les sous-répertoires de la page.

Ce code fonctionne très bien ("PASS") lorsqu'il est exécuté sur un serveur web, mais ne fonctionne pas ("PAS") dans Internet Explorer 8 lors de la lancer à partir du système de fichiers:

<html><head>
<script>
window.onload = function() {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", window.location.href, false);
  xhr.send(null);
  if (/TestString/.test(xhr.responseText)) {
    document.body.innerHTML="<p>PASS</p>";
  }
}
</script>
<body><p>FAIL</p></body>

Bien sûr, au début, il échoue car pas de scripts peuvent s'exécuter sur le système de fichiers, l'utilisateur est invité une barre jaune, avertissant que "Pour protéger votre sécurité, Internet Explorer a restreint cette page web à partir de l'exécution des scripts ou des contrôles ActiveX qui pourrait accéder à votre ordinateur".

Mais même une fois que je clique sur la barre et "Autoriser le Contenu Bloqué" la page ne parvient toujours pas; je reçois un "Accès Refusé" erreur sur la xhr.appel ouvert.

Ce qui m'intrigue, c', parce que MSDN dit que "Pour des fins de développement, le protocole file://est autorisé à partir de la zone ordinateur Local." Ce fichier devrait être une partie de la Zone ordinateur Local, droit?

Comment puis-je obtenir un code comme cela fonctionne? Je suis très bien avec l'invite de l'utilisateur avec les avertissements de sécurité; je ne suis pas OK avec les obligeant à éteindre la sécurité dans le panneau de contrôle.

EDIT: je ne suis pas, en fait, le chargement d'un document XML dans mon cas; je suis le chargement d'un fichier de texte brut (.txt).

source d'informationauteur Dan Fabulich