Javascript/AJAX funktioniert mit IE nicht lokal
Mase
- javascript
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);
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.
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.
Ja, bin mir sicher. Habe alles schon getestet.
getestet? Ich fragte ja nach der Fehlerkonsole, du kennst diese?
Struppi.
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
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.
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
Jap. Fehlerkonsole im FF zeigt nichts an
Seltsam, wenn ich deinen Code lokal ausprobiere, bekomme ich eine Fehlermeldung im Firefox. Warum du nicht?
Struppi.
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
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
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*
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