2010-11-01 16 views
6

Estoy escribiendo una aplicación HTML5 local para procesar algunas imágenes científicas. Estoy en OS X, y específicamente estoy escribiendo en JavaScript/HTML5 para la portabilidad para que pueda demostrarlo a mi supervisor en una máquina con Windows. Esta aplicación nunca se implementará en un servidor.canvas getImageData no funciona cuando se ejecuta localmente en Windows? (excepción de seguridad)

El problema es que funciona perfectamente en Safari en OS X, pero en Windows arroja un error de seguridad tanto en Firefox como en Chrome. Creo que esto se debe a que piensa que la imagen está en un dominio diferente, pero en realidad está en la misma carpeta que el script.

¿Hay alguna forma de evitar esto?

El error en cuestión es el mismo que se detallan aquí:

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

Edit: Debo aclarar, la respuesta a la cuestión he vinculado (que se ejecuta en un servidor local) no es factible porque No puedo instalar ningún software (¡ni servidor!) En estas máquinas. La razón por la que espero una respuesta alternativa es porque funciona en OS X.

Respuesta

11

para moverse por issies-origen cruzado en Chrome que puede ejecutar Chrome con esta bandera:

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

¡Eso es exactamente lo que estaba buscando! Gracias. – Matthew

0

Si puede ejecutar la aplicación a través de un servidor en su máquina, entonces (suponiendo que la máquina de su supervisor esté en la misma red) debería poder abrir el sitio en su máquina simplemente colocando su dirección IP en la barra de direcciones de su navegador. (Puede encontrar su dirección IP en el panel de preferencias de red)

No podrá evitar esto a menos que el navegador en cuestión tenga una preferencia que permita este agujero de seguridad, y aun así no es una buena idea.

Trate de encontrar la forma de ejecutar su sitio en un entorno de servidor.

Editar: Me acabo de dar cuenta de que su pregunta podría interpretarse como diciendo que ni siquiera puede instalar un servidor en su máquina OS X. Si eso es lo que quería decir, en primer lugar es casi seguro que es falso: puede instalar y ejecutar programas en su espacio de usuario, aunque no podrá ejecutar un servidor en ninguno de los puertos 1024 o inferiores. Pero en segundo lugar, aún desea presionar para que se ejecute el sitio en un entorno de servidor, incluso si eso significa encontrar recursos adicionales.

+0

Gracias por la respuesta. Disculpas si no estaba claro. Mi propia máquina es OS X, y puedo instalar un servidor si lo necesito también (viene con Apache, después de todo), pero el punto es que no es necesario porque * la secuencia de comandos funciona en Safari en OS X . * Por lo tanto, cualquiera que sea la característica de seguridad, * no está presente * en Safari en OS X (al menos en lo que respecta a ejecutar archivos localmente). Solo en Windows no funciona, y es la máquina de Windows en la que no puedo instalar programas. Estoy de acuerdo, en principio, en que ejecutarlo en un servidor sería mejor, pero realmente no es factible/sensato en mi situación. – Matthew

+0

Gracias por la sugerencia también, pero la máquina de mi supervisor no estaría en la misma red. Solo para aclarar el alcance, escribí este script solo para procesar unas pocas docenas de imágenes. Es algo que podría ser útil en el futuro, por lo que sería bueno poder dejar a mi supervisor con una copia que funcione localmente sin ningún esfuerzo adicional (persona no especializada). Que es lo que trato de averiguar cómo hacer. – Matthew

Cuestiones relacionadas