"Erlaubnis verweigert" im IE
Andreas Dölling
- javascript
Hallo,
ich habe folgendes Problem: in einer HTML-Seite sollen Inhalte abhängig von der aufgerufenen Domain eingeblendet werden. Zur Realisierung dieses Wunsches steht keine serverseitige Technologie zur Verfügung. Ich muß es also mit Javascript und CSS machen.
Ergo: ich verteile an die dynamischen Inhaltselemente CSS-Klassen, die den möglichen URLs entsprechen (mit Unterstrichen statt der Punkte), also zum Beispiel class="meine_domain_com".
Das ist alles kein Problem.
Nun bekommt aber der Kunde im IE den Fehler "Erlaubnis verweigert". Allerdings auch nicht _alle_ Mitarbeiter des Kunden.
_Eigentlich_ schließe ich ja daraus, daß es an den Sicherheitseinstellungen im IE liegt - aber mein Script tut gar nichts Sicherheitsrelevantes.
Habt Ihr eine Idee, was diese Fehlermeldung genau bedeuten könnte (im Firefox/Mozilla läuft alles fehlerfrei, daher kann ich Euch keine vernünftige Fehlermeldung liefern)?
Ein Code-Auszug:
<script type="text/javascript">
// <![CDATA[
function displayMessage() {
var messageObj;
var currentClassName = window.location.host.replace(/./g, '_');
// .....
</script>
Der Fehler tritt laut Kunde in der Zeile
var currentClassName = window.location.host.replace(/./g, '_');
auf.
Dumm ist auch, daß ich selbst den Fehler nicht reproduzieren kann - weder per Aufruf über das Dateisystem, noch auf unserem lokalen Testserver, noch auf einem externen Server.
Ich kann mir auch gar keinen Grund für den Fehler vorstellen, denn ich will ja weder Inhalte einer fremden Domain manipulieren noch die URL selbst.
Bin für Denkanstöße dankbar!
Ciao,
Andreas
Hallo Andreas,
Nun bekommt aber der Kunde im IE den Fehler "Erlaubnis verweigert". Allerdings auch nicht _alle_ Mitarbeiter des Kunden.
_Eigentlich_ schließe ich ja daraus, daß es an den Sicherheitseinstellungen im IE liegt - aber mein Script tut gar nichts Sicherheitsrelevantes.
Doch - es verletzt u.U. die Same Origin Policy.
var currentClassName = window.location.host.replace(/./g, '_');
Stammt der Inhalt von window.location von derselben Domain wie das Script selbst? Falls nein, dann *muss* diese Anweisung wegen einer Zugriffsbeschränkung fehlschlagen.
Ich kann mir auch gar keinen Grund für den Fehler vorstellen, denn ich will ja weder Inhalte einer fremden Domain manipulieren noch die URL selbst.
Dann verstehe ich nicht, wie dein Script mit den aus verschiedenen Quellen stammenden Inhalten zusammenarbeitet. Aus der Sicht des Scripts, das ja entweder aus einer lokalen Quelle (Bookmarklet) oder von einem beliebigen weiteren Server stammt, sind die dynamisch eingebundenen Inhalte doch alle von Fremddomains, oder nicht?
Und beim IE kann man durch "geschickte" Einstellungen ja wirklich die Same Origin Policy übergehen (Stichwort: "Auf Datenquellen über Domänen zugreifen").
Schönen Tag noch,
Martin
Hallo,
danke für Deine schnelle Antwort.
Dann verstehe ich nicht, wie dein Script mit den aus verschiedenen Quellen stammenden Inhalten zusammenarbeitet. Aus der Sicht des Scripts, das ja entweder aus einer lokalen Quelle (Bookmarklet) oder von einem beliebigen weiteren Server stammt, sind die dynamisch eingebundenen Inhalte doch alle von Fremddomains, oder nicht?
Da sprichst Du etwas verdammt Richtiges aus. Dummerweise wird die eigentliche Anwendung von einer anderen Firma erstellt und ist für mich eine "black box". Aber Du hast völlig recht - es _muß_ eine Verletzung der "Same origin policy" vorliegen.
Ich muß ganz einfach nähere Infos über die "black box" bekommen.
Da ist die Kommunikation zwischen meinem Chef und der Fremdfirma anscheinend mal wieder prima gelaufen... Ich selbst hätte allerdings auch ein bißchen früher stutzig werden müssen - aber so ist das eben bei "zwischen Tür und Angel"-Projekten.
Und beim IE kann man durch "geschickte" Einstellungen ja wirklich die Same Origin Policy übergehen (Stichwort: "Auf Datenquellen über Domänen zugreifen").
Hm, auf solche "Schweinereien" will ich mich ungern verlassen, zumal der Kunde im Moment gerade entdeckt, daß ja auch der Firefox kein Teufelszeug ist.
;)
Ciao,
Andreas
Hi,
Dummerweise wird die eigentliche Anwendung von einer anderen Firma erstellt und ist für mich eine "black box". Aber Du hast völlig recht - es _muß_ eine Verletzung der "Same origin policy" vorliegen.
es sah zumindest stark danach aus, auch wenn ich das Gesamtkonzept nicht *ganz* begriffen habe.
Da ist die Kommunikation zwischen meinem Chef und der Fremdfirma anscheinend mal wieder prima gelaufen...
Ja, das kommt mir bekannt vor. Ist dein Chef zufällig einer von denen, die zwar gut verhandeln und delegieren können, aber über die Technik nur ansatzweise Bescheid wissen? ;-)
Und beim IE kann man durch "geschickte" Einstellungen ja wirklich die Same Origin Policy übergehen (Stichwort: "Auf Datenquellen über Domänen zugreifen").
Hm, auf solche "Schweinereien" will ich mich ungern verlassen, zumal der Kunde im Moment gerade entdeckt, daß ja auch der Firefox kein Teufelszeug ist.
Ich wollte das auch auf keinen Fall als Empfehlung verstanden wissen!
Eigentlich mehr als Warnung, bestenfalls als Denkanstoß.
So long,
Martin
PS: Wenn jemand schon bereit ist, *eventuell* dem IE den Rücken zu kehren, dann würde ich demjenigen eher Opera ans Herz legen, aber bestimmt nicht Firefox. Das ist aber nur meine ganz persönliche Meinung.
Hallo,
Ja, das kommt mir bekannt vor. Ist dein Chef zufällig einer von denen, die zwar gut verhandeln und delegieren können, aber über die Technik nur ansatzweise Bescheid wissen? ;-)
hmm, nein, er ist eher ein absoluter Technokrat, der sich aber nur für die interessanten, hippen Dinge interessiert (und entsprechend schnell seine Maximen ändert...). Für die Umsetzung hat er dann seine Drohnen.
;)
PS: Wenn jemand schon bereit ist, *eventuell* dem IE den Rücken zu kehren, dann würde ich demjenigen eher Opera ans Herz legen, aber bestimmt nicht Firefox. Das ist aber nur meine ganz persönliche Meinung.
Ich habe bei mir noch den Opera 7.53 als Freeware-Version laufen. Ich weiß nicht genau, warum, aber irgendwie ist mir zumindest dieser Opera "unsympathisch".
Naja, sollte sich das Problem mit dem "Erlaunnis verweigert"-Fehler klären, dann werde ich das hier noch vermelden, so denn dieser Thread dann noch existiert.
Ciao,
Andreas
hi,
Ich habe bei mir noch den Opera 7.53 als Freeware-Version laufen. Ich weiß nicht genau, warum, aber irgendwie ist mir zumindest dieser Opera "unsympathisch".
Nun ja, aktuell ist Opera scon um eine Nummer vor dem Komma weiter - 8.54 ist aktuell, und die 9er auch nicht mehr allzu weit entfernt.
Eine 7er jetzt noch mit einem aktuellen FF zu vergleichen, ist m.E. nicht ganz fair.
gruß,
wahsaga
Hallo,
Nun ja, aktuell ist Opera scon um eine Nummer vor dem Komma weiter - 8.54 ist aktuell, und die 9er auch nicht mehr allzu weit entfernt.
Eine 7er jetzt noch mit einem aktuellen FF zu vergleichen, ist m.E. nicht ganz fair.
nein, sicher nicht.
Werde mir die neue Opera-Version gleich mal installieren.
Ciao,
Andreas
Hallo Martin,
PS: Wenn jemand schon bereit ist, *eventuell* dem IE den Rücken zu kehren, dann würde ich demjenigen eher Opera ans Herz legen, aber bestimmt nicht Firefox.
Ich würde ihm gar keine Browser ans Herz legen, sondern lediglich zeigen, welche es gibt und ihm dann die Auswahl selbst überlassen. ;-)
Viele Grüße,
Christian