2010-11-01 4 views
6

Ich schreibe eine lokale HTML5-App, um einige wissenschaftliche Bilder zu verarbeiten. Ich bin auf OS X, und ich schreibe es speziell in JavaScript/HTML5 für Portabilität, so dass ich es meinem Vorgesetzten auf einem Windows-Rechner demonstrieren kann. Diese App wird niemals auf einem Server bereitgestellt.Canvas getImageData funktioniert nicht, wenn lokal unter Windows ausgeführt wird? (Sicherheitsausnahme)

Das Problem ist, es funktioniert perfekt auf Safari unter OS X, aber unter Windows wirft es einen Sicherheitsfehler sowohl in Firefox als auch in Chrome auf. Ich denke, das ist, weil es denkt das Bild ist auf einer anderen Domäne, aber in Wirklichkeit ist es im selben Ordner wie das Skript.

Gibt es eine Möglichkeit, dass ich das umgehen kann?

Der betreffende Fehler ist die gleiche wie hier beschrieben:

Uncaught Error: SECURITY_ERR: DOM Exception 18 when I try to set a cookie

Edit: Ich klären sollte, ist die Antwort auf die Frage, die ich verknüpft (es auf einem lokalen Server ausgeführt wird) ist nicht möglich, weil Ich kann keine Software (oder Server!) Auf diesen Rechnern installieren. Der Grund, warum ich hoffe auf eine alternative Antwort ist, weil es funktioniert unter OS X.

Antwort

11

Um Cross-Origin issies in Chrome erhalten Sie Chrome mit dieser Flagge laufen kann:

--allow-file-access-from-files 
+0

Genau das habe ich gesucht! Vielen Dank. – Matthew

0

Wenn Sie die App über einen Server auf Ihrem Computer ausführen können (vorausgesetzt, der Computer Ihres Vorgesetzten ist im selben Netzwerk) Sie sollte in der Lage sein, die Website auf seinem Rechner zu öffnen, indem Sie einfach Ihre IP-Adresse in die Adresszeile seines Browsers eingeben. (Sie können Ihre IP-Adresse im Einstellungsfenster Netzwerk finden.)

Sie werden nicht in der Lage sein, dies zu umgehen, es sei denn, der fragliche Browser hat eine Vorliebe für diese Sicherheitslücke, und selbst dann ist es keine gute Idee.

Versuchen Sie, eine Möglichkeit zu finden, Ihre Site in einer Serverumgebung auszuführen.

Bearbeiten: Ich habe gerade festgestellt, Ihre Frage könnte so interpretiert werden, dass Sie nicht einmal einen Server auf Ihrem OS X-Rechner installieren können. Wenn das das ist, was Sie meinten, ist es erstens fast sicher falsch - Sie können Programme in Ihrem Benutzerbereich installieren und ausführen, obwohl Sie keinen Server auf einem der Ports 1024 oder darunter ausführen können. Aber zweitens möchten Sie immer noch nach einer Möglichkeit suchen, die Site in einer Serverumgebung auszuführen, auch wenn das bedeutet, zusätzliche Ressourcen zu finden.

+0

Danke für die Antwort. Entschuldigung, wenn ich nicht klar war. Meine eigene Maschine ist OS X, und ich kann tatsächlich einen Server darauf installieren, wenn ich es auch brauche (es kommt schließlich mit Apache), aber den Punkt brauche ich nicht, weil das Skript in Safari unter OS X funktioniert . * Also, was auch immer Sicherheitsmerkmal ist, * es ist nicht vorhanden * auf Safari unter OS X (zumindest in Bezug auf die lokale Ausführung von Dateien). Es ist nur unter Windows, dass es nicht funktioniert, und es ist der Windows-Computer, auf dem ich keine Programme installieren kann. Ich stimme grundsätzlich zu, dass es besser wäre, es auf einem Server zu betreiben, aber es ist in meiner Situation wirklich nicht machbar/vernünftig. – Matthew

+0

Danke auch für den Vorschlag, aber die Maschine meines Vorgesetzten wäre nicht im selben Netzwerk. Um den Umfang zu verdeutlichen, habe ich dieses Skript geschrieben, um ein paar Dutzend Bilder zu bearbeiten. Es ist nur etwas, das in der Zukunft nützlich sein könnte, also wäre es schön, wenn ich meinen Vorgesetzten mit einer Kopie belassen könnte, die ohne zusätzlichen Aufwand lokal arbeitet (nicht-techische Person). Was ich versuche herauszufinden, wie es geht. – Matthew

Verwandte Themen