Hallo, der Aufruf des unten stehenden JavaScript-Programms führt zu dieser Fehlermeldung im FireFox: ------------------------------------------------------------------- Zeitstempel: 04.08.2012 18:44:13 Fehler: uncaught exception: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "file:///C:/GettTmp2.html Line: 27"] ------------------------------------------------------------------- Das Script habe ich von der Wikipedia (http://de.wikipedia.org/wiki/XMLHttpRequest) kopiert. Die Zeile 27 aus der Fehlermeldung ist mit einem '*' markiert. Was muss ich ändern, um die Daten vom AVR-NetIO zu bekommen. mfg Jürgen <SCRIPT type="text/javascript"> var xmlHttp = null; try { // Mozilla, Opera, Safari sowie Internet Explorer (ab v7) xmlHttp = new XMLHttpRequest(); } catch(e) { try { // MS Internet Explorer (ab v6) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { try { // MS Internet Explorer (ab v5) xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xmlHttp = null; } } } if (xmlHttp) { xmlHttp.open('GET', '192.168.0.90/temp.csv', true); xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4) { alert(xmlHttp.responseText); } }; * xmlHttp.send(null); } </script>
Hallo, einen kleinen Schritt bin ich weitergekommen. Wird die Anweisung "xmlHttp.send(null);" in "xmlHttp.send();" geändert, dann geht die Anforderung (siehe unten) zum AVR-NetIO. Leider kommen keine Daten zurück. mfg Jürgen **** NEUE HTTP ANFORDERUNG **** GET /temp.csv HTTP/1.1 Host: 192.168.0.90 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Origin: null DNT: 1 Connection: keep-alive <---HEADER ENDE ERREICHT!--->
steht doch in der fehlermeldung: firefox lässt den ajax-call nicht zu, weil der auf eine andere domain zeigt (du öffnest die datei lokal und versuchst per ajax daten zu laden) -> cross-site-scripting... mögliche lösungen: 1. einen uralten ie verwenden, der zwar schon ajax unterstützt aber gegen cross-domain-probleme nicht sicher ist 2. ein (php)-script dazwischen schalten, das den cross-domain-aufruf kapselt 3. es gibt sicher noch mehr lösungen, aber ich will im moment nicht mehr besonders viel denken ;-) p.s. ein ajax-aufruf kommt selten allein - warum verwendest du keine brauchbare bibliothek, die den ganzen browserabhägngigen kram kapselt? (z.b. mit jquery kannst du je nach formatierung den ganzen javascript-block auf ca. 10 zeilen reduzieren - ändert aber nichts an deinem problem...)
Ajax funktioniert seit einiger Zeit nicht mehr mit Lokalen Dateien. Du must die Seite auf einem Webserver hochladen und den AJAX Call an den gleichen Webserver richten, wo auch die Seite her kan, die das Javascript enthält. Ist ein Security Feature vom Web Browser.
Hallo, vielen Dank für Eure Antworten. "Du must die Seite auf einem Webserver hochladen ..." Das war es! mfg Jürgen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.