Singha: xmlhttprequest.open verweigert (lokal)

Hallo zusammen,

ich habe das Problem, dass ich in einer lokalen (offline) Webseite, prüfen möchte, ob eine Netzwerkverbindung (Intranet) besteht.

Dazu dachte ich mir, im Javascript die Intranet-Url per XMLHttpRequest aufzurufen, und den Status auf 200 zu prüfen. Falls 200, kann ich auch gleich den ResponseText ausgeben.

Im IE6 funktioniert es, im IE7 und Firefox bekomme ich "Erlaubnis verweigert".

Ich weiss, dass es am domainübergreifenden Access liegt, nur leider kann ich keinen PHP-Wrapper bauen, da meine Seite lokal (z.B. C:\daten\index.html ) aufgerufen wird.

Kann ich dem Browser irgendwie mittteilen, welche Domains erlaubt sind bzw. gibt es andere Lösungen für mein Grundproblem

"Prüfe irgendwie, ob eine Netzwerkverbindung besteht".

Vielen Dank und bis dann
Wolfgang

  1. Hi,

    Ich weiss, dass es am domainübergreifenden Access liegt, nur leider kann ich keinen PHP-Wrapper bauen, da meine Seite lokal (z.B. C:\daten\index.html ) aufgerufen wird.

    warum lässt Du sie nicht lokal (z.B. http://localhost/index.html) laufen?

    Kann ich dem Browser irgendwie mittteilen,

    Welchem Browser?

    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. Hi,

      Ich weiss, dass es am domainübergreifenden Access liegt, nur leider kann ich keinen PHP-Wrapper bauen, da meine Seite lokal (z.B. C:\daten\index.html ) aufgerufen wird.

      warum lässt Du sie nicht lokal (z.B. http://localhost/index.html) laufen?

      Weil lokal kein Webserver läuft. Es ist eine Seite, die Offline, ohne jegliche Netzwerkverbindung läuft, und bei Netzwerkverbindung mit Online-Daten ergänzt wird.

      Kann ich dem Browser irgendwie mittteilen,

      Welchem Browser?

      primär dem IE 7, sekundär Firefox

      Cheatah

      1. Hi,

        warum lässt Du sie nicht lokal (z.B. http://localhost/index.html) laufen?

        Weil lokal kein Webserver läuft.

        Und warum ... aenderst du das nicht?

        Es ist eine Seite, die Offline, ohne jegliche Netzwerkverbindung läuft

        Es braucht ja keine Netzwerkverbindung, um lokal einen Webserver laufen zu lassen.

        Btw: Hast du schon mal im Archiv nach anderen Ansaetzen gesucht, das gewuenschte zu erreichen?

        MfG ChrisB

        1. Hi,

          warum lässt Du sie nicht lokal (z.B. http://localhost/index.html) laufen?

          Weil lokal kein Webserver läuft.

          Und warum ... aenderst du das nicht?

          Weil ich keinen Einfluss auf den Client habe. Es werden lediglich statische HTML-Seiten verteilt.

          Es ist eine Seite, die Offline, ohne jegliche Netzwerkverbindung läuft

          Es braucht ja keine Netzwerkverbindung, um lokal einen Webserver laufen zu lassen.

          Richtig, wenn man einen installiert hat, und wenn dieser dann auch gestartet ist. Beides kann ich leider nicht beeinflussen.

          Btw: Hast du schon mal im Archiv nach anderen Ansaetzen gesucht, das gewuenschte zu erreichen?

          Ja, habe ich, da war nur die Lösung mit dem Wrapper, und eine setzen von "document.domain". Da bekomme ich immer die Fehlermeldung "Ungültiges Argument".

          MfG ChrisB

          1. Moin Moin!

            Btw: Hast du schon mal im Archiv nach anderen Ansaetzen gesucht, das gewuenschte zu erreichen?

            Ja, habe ich, da war nur die Lösung mit dem Wrapper, und eine setzen von "document.domain". Da bekomme ich immer die Fehlermeldung "Ungültiges Argument".

            Wenn Du im Brower Javascript voraussetzen darfst, kannst Du per DOM neue Script-Elemente in das Dokument einbauen, damit müßtest Du weiter kommen. Grober Ansatz:

              
            var script=document.createElement("script");  
            script.type="text/javascript";  
            script.src="http://www.example.com/bla/fasel/hacks.js";  
            var head=document.getElementsByTagName("head")[0];  
            head.appendChild(script);  
            
            

            Aber ehrlich gesagt: URLs auf irgendeinen erreichbaren Webserver lassen sich leichter verteilen als HTMML-Dateien, die versuchen, die Sicherheitskonzepte moderner Browser auszutricksen.

            Alexander

            --
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
  2. Hallo,

    Im IE6 funktioniert es

    Gruselig..

    Kann ich dem Browser irgendwie mittteilen, welche Domains erlaubt sind

    Nein.

    bzw. gibt es andere Lösungen für mein Grundproblem

    "Prüfe irgendwie, ob eine Netzwerkverbindung besteht".

    Evtl. http://javascript.jstruebig.de/javascript/42/

    Mathias