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

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

F12 pop dos: SCRIPT5: l'Accès est refusé. à la ligne 95, qui correspond au pfttx.ligne ouverte.

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

j'ai lu beaucoup de questions très similaires à celle-ci, donc j'ai vérifié la même Politique D'origine, mais je ne vois pas comment cela pourrait s'appliquer en considérant foo.xml est dans le même répertoire que le fichier html. J'ai ouvert la permission de script sur mon intranet local, et dit McAfee de prendre une pause de cinq minutes, juste pour être sûr. J'ai même essayé de lancer IE en tant qu'administrateur, donc ça ne peut pas vraiment être un problème de permissions n'est-ce pas? Sinon, pourquoi refuserait-on à IE l'accès à un dossier local?

45
demandé sur ndsmyter 2011-04-26 21:06:03

11 réponses

5
répondu EricLaw 2011-04-26 22:26:24

cet exemple illustre comment utiliser AJAX pour extraire des ressources de n'importe quel site web. il fonctionne à travers les navigateurs. je l'ai testé sur IE8-IE10, safari, chrome, firefox, opéra.

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;
5
répondu Philips 2014-03-25 13:08:28

ce message d'erreur (SCRIPT5: L'accès est refusé. peuvent également être rencontrés si la page cible d'un .remplacer la méthode n'est pas trouvé (j'avais entré le nom de page incorrectement). Je le sais parce que ça m'est arrivé, c'est pourquoi j'ai cherché plus d'informations sur la signification du message d'erreur.

3
répondu Rockwell1960 2013-04-15 15:00:44

sur IE7, IE8, et IE9 il suffit d'aller aux Paramètres->Options Internet->Sécurité->niveau personnalisé et modifier les paramètres de sécurité sous" divers "définir" accéder aux sources de données à travers les domaines " pour activer.

1
répondu Walid Ibrahim 2012-11-09 20:05:58

très probablement, vous devez avoir le Javascript servi sur SSL.

Source: https://www.parse.com/questions/internet-explorer-and-the-javascript-sdk

1
répondu Brenden 2012-12-02 23:18:23

je pense que le problème est que le fichier est sur votre ordinateur local, et IE refuse l'accès parce que s'il permet aux scripts d'avoir accès aux fichiers sur le comp que le navigateur est en cours d'exécution, ce serait un énorme trou de sécurité.

Si vous avez accès à un serveur ou un autre comp que vous pourriez utiliser comme un, peut-être que vous pourriez essayer de mettre les fichiers sur le que, et puis exécuter les scripts comme vous le feriez à partir d'un site web.

0
répondu Nate Koppenhaver 2011-04-26 17:09:48

vous demandez probablement une ressource externe, ce cas nécessite L'objet XDomain. Voir l'exemple de code ci-dessous pour savoir comment faire ajax request pour tous les navigateurs avec des domaines croisés:

Tork.post = function (url,data,callBack,callBackParameter){
    if (url.indexOf("?")>0){
        data = url.substring(url.indexOf("?")+1)+"&"+ data;
        url = url.substring(0,url.indexOf("?"));
    }
    data += "&randomNumberG=" + Math.random() + (Tork.debug?"&debug=1":"");
    var xmlhttp;
    if (window.XDomainRequest)
    {
        xmlhttp=new XDomainRequest();
        xmlhttp.onload = function(){callBack(xmlhttp.responseText)};
    }
    else if (window.XMLHttpRequest)
        xmlhttp=new XMLHttpRequest();
    else
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            Tork.msg("Response:"+xmlhttp.responseText);
            callBack(xmlhttp.responseText,callBackParameter);
            Tork.showLoadingScreen(false);
        }
    }
    xmlhttp.open("POST",Tork.baseURL+url,true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send(data);
}
0
répondu Orhun Alp Oral 2012-10-21 20:26:11

j'avais fait face à la même question sur IE10. J'ai trouvé une solution en utilisant la requête ajax de jQuery pour récupérer des données:

$.ajax({
    url: YOUR_XML_FILE
    aync: false,
    success: function (data) {   
        // Store data into a variable
    },
    dataType: YOUR_DATA_TYPE,
    complete: ON_COMPLETE_FUNCTION_CALL
});
0
répondu gautam 2014-03-25 13:09:45
  $.ajax({
        url: '//freegeoip.net/json/',
        type: 'POST',
        dataType: 'jsonp',
        success: function(location) {
            alert(location.ip);
        }
    });

ce code fonctionnera aussi sur les sites https

-1
répondu Ranjit Kumar 2014-09-03 16:00:05

ouvrir L'outil de développement Internet Explorer, Outils -> outils de développement F12. (Je pense que vous pouvez également appuyer sur F12 pour l'obtenir)

remplacer le Document Mode par Standards . (La page doit être rafraîchie automatiquement, si vous changez le Document Mode )

problème devrait être corrigé. Profiter de

-3
répondu Shuliyey 2013-10-22 06:05:43