Mase: Javascript/AJAX funktioniert mit IE nicht lokal

Hallo Experten,
ich habe folgendes Problem: Habe mich für die übersichtliche Navigation einem AJAX Menu bedient. Dies funktioniert alles auch perfekt wenn man es online stellt. Möchte man es aber lokal ausführen, ist es mit IE8 nicht möglich. Hier kommt immer die Fehlermeldung "Zugriff verweigert" bei folgender Codezeile: xmlHttp.open("GET", navfile, false). Im FF funktioniert aber alles bestens. Die Datei müsste aber zwingend lokal ausgeführt werden und ich bin mittlwerweile am verzweifeln. Hat jemand dafür eine Lösung? Hier der komplette Code:

//config  
var menu_active_class = "active";  
var menu_leaf_class = "leaf";  
var menu_open_class = "open";  
var menu_closed_class = "closed";  
  
//the default page that is displayed if URL ends in /  
var menu_default_page = "index.php";  
  
//state  
var menu_current; // XML menu node of the current location  
var menu_totop;   // path to top folder from current location  
  
// main function  
// navfile : the URL to the navigation XML  
// menu_id : id of the element into which to insert the navigation  
function menu_main(navfile, menu_id) {  
  var xml = menu_loadXml(navfile);  
  if (!xml) return;  
  menu_create(xml, menu_id);  
}  
  
// navfile : the URL to the navigation XML  
function menu_loadXml(navfile) {  
    var xmlHttp = false;  
    // Mozilla, Opera, Safari, IE7  
    if (typeof XMLHttpRequest != 'undefined') {  
        xmlHttp = new XMLHttpRequest();  
    }  
    if (!xmlHttp) {  
        // before IE 6  
        try {  
            xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");  
        } catch(e) {  
            try {  
                xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");  
            } catch(e) {  
                xmlHttp  = false;  
            }  
        }  
    }  
    if (!xmlHttp) {  
      alert("Sorry, your browser does not support AJAX!");  
      return false;  
    }  
  
    xmlHttp.open("GET", navfile, false);  
    xmlHttp.send(null);  
    // when on local file system browsers return 0 here  
    if ((xmlHttp.status==0) || ((xmlHttp.status>=200) && (xmlHttp.status < 400))) {  
      return xmlHttp.responseXML.getElementsByTagName("navigation")[0];  
    } else {  
      alert("AJAX error: "+ xmlHttp.status +" "+ xmlHttp.statusText);  
      return false;  
    }  
}  
  
// xml : the XML root node of the navigation XML  
// menu_id : id of the element into which to insert the navigation  
function menu_create(xml, menu_id) {  
     var url = location.href;  
     if (url.lastIndexOf("/") == (url.length-1)) {  
       url = url+menu_default_page;  
     }  
     if (url.lastIndexOf("?") >= 0) {  
       url = url.substring(0, url.lastIndexOf("?"));  
     }  
     if (url.lastIndexOf("#") >= 0) {  
       url = url.substring(0, url.lastIndexOf("#"));  
     }  
     menu_current = menu_getCurrentMenu(xml, url);  
     menu_totop = menu_getPathToTop(menu_current);  
  
     var main = document.getElementById(menu_id);  
     if (!main) {  
       alert("No element with id '"+ menu_id +"' found");  
       return;  
     }  
  
     var root = document.createElement("ul");  
     menu_traverse(xml, root);  
     main.appendChild(root);
  1. ich habe folgendes Problem: Habe mich für die übersichtliche Navigation einem AJAX Menu bedient. Dies funktioniert alles auch perfekt wenn man es online stellt. Möchte man es aber lokal ausführen, ist es mit IE8 nicht möglich. Hier kommt immer die Fehlermeldung "Zugriff verweigert" bei folgender Codezeile: xmlHttp.open("GET", navfile, false). Im FF funktioniert aber alles bestens.

    Bist du sicher? Keine Meldung in der Fehlerkonsole? Das wäre Merkwürdig.

    Struppi.

    1. ich habe folgendes Problem: Habe mich für die übersichtliche Navigation einem AJAX Menu bedient. Dies funktioniert alles auch perfekt wenn man es online stellt. Möchte man es aber lokal ausführen, ist es mit IE8 nicht möglich. Hier kommt immer die Fehlermeldung "Zugriff verweigert" bei folgender Codezeile: xmlHttp.open("GET", navfile, false). Im FF funktioniert aber alles bestens.

      Bist du sicher? Keine Meldung in der Fehlerkonsole? Das wäre Merkwürdig.

      Struppi.

      Ja, bin mir sicher. Habe alles schon getestet. Online funktioniert alles ohne Probleme. Lokal funktioniert auch im FireFox alles tadellos. Nur der IE gibt mir die Fehlermeldung "Zugriff verweigert" - auch wenn ich die Sicherheitseinstellungen nach unten schraube.

      1. Ja, bin mir sicher. Habe alles schon getestet.

        getestet? Ich fragte ja nach der Fehlerkonsole, du kennst diese?

        Struppi.

        1. Ja, bin mir sicher. Habe alles schon getestet.

          getestet? Ich fragte ja nach der Fehlerkonsole, du kennst diese?

          Struppi.

          Hab den Debugger vom IE8 schon drüber laufen lassen. Hier bringt er mir an der Stelle den Fehler: Laufzeitfehler Javascript; unbekannter Fehler

          1. Hab den Debugger vom IE8 schon drüber laufen lassen. Hier bringt er mir an der Stelle den Fehler: Laufzeitfehler Javascript; unbekannter Fehler

            Es geht um den Firefox, du sagst also die Fehlerkonsole im Firefox ist leer?

            Struppi.

            1. Hab den Debugger vom IE8 schon drüber laufen lassen. Hier bringt er mir an der Stelle den Fehler: Laufzeitfehler Javascript; unbekannter Fehler

              Es geht um den Firefox, du sagst also die Fehlerkonsole im Firefox ist leer?

              Struppi.

              Jap. Fehlerkonsole im FF zeigt nichts an

              1. Jap. Fehlerkonsole im FF zeigt nichts an

                Seltsam, wenn ich deinen Code lokal ausprobiere, bekomme ich eine Fehlermeldung im Firefox. Warum du nicht?

                Struppi.

  2. Hallo Mase,

    liegt es vielleicht am MOTW?

    Gruß, Jürgen

    1. Hallo Mase,

      liegt es vielleicht am MOTW?

      Gruß, Jürgen

      Ich denke nicht. Trotz nach unten geschraubter Sicherheitseinstellungen im IE kommt ja nicht einmal eine Abfrage ob ich das Script zulassen möchte oder ob es deaktiviert bleiben soll. Es funktioniert einfach nicht und gibt mir nur die Fehlermeldung aus

  3. Hi,

    Dies funktioniert alles auch perfekt wenn man es online stellt. Möchte man es aber lokal ausführen, ist es mit IE8 nicht möglich.

    es ist völlig sinnlos, Dinge in einem Kontext zu entwickeln und zu testen, der nicht dem entspricht, in dem sie laufen sollen. Wenn Deine Codes also im HTTP-Kontext laufen sollen, dann entwickle sie auch in einem HTTP-Kontext. Ein lokaler Server ist ja nun kein Hexenwerk - und dem IE sein idiotisches Zonensystem abzugewöhnen auch nicht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Moin!

      Ein lokaler Server ist ja nun kein Hexenwerk - und dem IE sein idiotisches Zonensystem abzugewöhnen auch nicht.

      Echt nicht? Ich dachte immer Hexenwerk bekaempft man mit Hexenwerk. Oder is das Zonensystem eher Teufelswerk? *denkt laut nach*

      --
      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
            - T. Pratchett
      1. Hallo,

        Ein lokaler Server ist ja nun kein Hexenwerk - und dem IE sein idiotisches Zonensystem abzugewöhnen auch nicht.

        ACK, ACK?

        Abgewöhnen? Man kann alle Zonen identisch einstellen und das Zonensystem damit faktisch unwirksam machen. Aber warum sollte man etwas so Sinnvolles wie Mülltrennung abschaffen wollen?

        Echt nicht? Ich dachte immer Hexenwerk bekaempft man mit Hexenwerk. Oder is das Zonensystem eher Teufelswerk? *denkt laut nach*

        Nein, eigentlich ist es geradezu genial, und ich bedaure, dass es nicht mehr Nachahmer findet.
        Das einzig Dämliche sind die Defaulteinstellungen der Zonen "Lokal" und "Internet", die IMHO genau verkehrtrum gesetzt sind. Denn lokale Ressourcen unterliegen meiner (des Users/des Admins) Kontrolle, so dass man hier eigentlich sehr lockere Einstellungen machen kann. Die Gefahr kommt von draußen aus dem bösen Internet, wo ich keinen Einfluss habe. DORT möchte man die Sicherheitseinstellungen restriktiv machen, nicht in der lokalen Zone.

        Ich stelle das beim IE normalerweise erstmal um: In der lokalen Zone ist so ziemlich alles erlaubt, in der Internet-Zone dagegen vieles eingeschränkt.

        Ciao,
         Martin

        --
        Eifersucht ist so alt wie die Menschheit: Als Adam einmal spät heimkam, zählte Eva sofort seine Rippen.