46 votes

SCRIPT5 : L'accès est refusé dans IE9 sur xmlhttprequest

var xhttp=new XMLHttpRequest();
xhttp.open('GET', 'foo.xml', false);

F12 retour en arrière : SCRIPT5 : Access is denied. sur la ligne 95, qui est la ligne xhttp.open.

Mon JavaScript semble bien formé, et Firefox fait ce que je pense qu'il devrait faire.

J'ai lu beaucoup de questions très similaires à celle-ci, j'ai donc vérifié la politique de même origine, mais je ne vois pas comment elle pourrait s'appliquer étant donné que foo.xml se trouve dans le même répertoire que le fichier html. J'ai ouvert les autorisations de script sur mon intranet local et demandé à McAfee de faire une pause de cinq minutes, juste pour être sûr. J'ai même essayé d'exécuter IE en tant qu'administrateur, donc cela ne peut pas vraiment être un problème de permissions, n'est-ce pas ? Sinon, pourquoi IE se verrait-il refuser l'accès à un fichier local ?

13voto

5voto

Philips Points 31

Cet exemple illustre comment utiliser AJAX pour extraire des ressources de n'importe quel site web. Il fonctionne sur tous les navigateurs. Je l'ai testé sur IE8-IE10, safari, chrome, firefox, opera.

if (window.XDomainRequest) xmlhttp = new XDomainRequest();
else if (window.XMLHttpRequest) xmlhttp = new XMLHttpRequest();
else xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("GET", "http://api.hostip.info/get_html.php", false);
xmlhttp.send();

hostipInfo = xmlhttp.responseText.split("\n");
var IP = false;
for (i = 0; hostipInfo.length >= i; i++) {
    if (hostipInfo[i]) {

        ipAddress = hostipInfo[i].split(":");
        if (ipAddress[0] == "IP") {
            IP = ipAddress[1];
        }
    }
}
return IP;

5voto

EricLaw Points 28850

3voto

Walid Ibrahim Points 140

Sur IE7, IE8 et IE9, il suffit d'aller dans Paramètres->Options Internet->Sécurité->Niveau personnalisé et de modifier les paramètres de sécurité sous "Divers", en mettant "Accès aux sources de données à travers les domaines" sur Activer.

3voto

Rockwell1960 Points 11

Ce message d'erreur (SCRIPT5 : Access is denied.) peut également être rencontré si la page cible d'une méthode .replace n'est pas trouvée (j'avais mal saisi le nom de la page). Je le sais parce que cela vient de m'arriver, c'est pourquoi j'ai cherché des informations supplémentaires sur la signification de ce message d'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X