2008-12-01 9 views
31

Quiero desarrollar JavaScript en mi máquina con Windows. ¿Conoces un navegador donde puedo desactivar Política de Same Origin para que pueda desarrollarme localmente? Firefox sería óptimo.¿Puedo deshabilitar SOP (la misma política de origen) en cualquier navegador para el desarrollo?

O si conoce un proxy que podría utilizar para un sitio SOAP/WSDL, sería genial también.

Estoy tratando de trabajar con el JavaSCript SOAP Client.

+0

Tenía exactamente el mismo deseo para cuando estaba desarrollando una aplicación de MySpace. –

Respuesta

2

Cree una página en su servidor local que llame al servidor remoto y responda de la misma manera que el servidor remoto.

Ejemplo, javascript llama al servidor local para un JSON. El servidor local realiza la llamada al servidor remoto para ese JSON. El servidor local recibe el JSON del servidor remoto y lo envía al javascript.

1

Todas las respuestas dadas son buenas cuando se trata de obtener la misma política de origen en la producción.

Para el desarrollo, no hay una forma conveniente de "desactivar" esta comprobación de seguridad. Hay soluciones (ver otras respuestas) o hacks (puede usar Greasemonkey para envolver el JavaScript y usar su GM_xmlhttprequest como una medida temporal), pero no hay forma de "desactivarlo" tal como lo describe.

+1

+1 para GM_xmlhttprequest – baptx

-1

También puede redirigir un puerto local al servidor remoto y al puerto a través de ssh.

15

ACTUALIZACIÓN 6/2012: Esto funcionaba en el momento de la escritura, pero, obviamente, no más. Lo siento.

En Firefox (podría aplicarse a otros navegadores basados ​​en Gecko también) se puede utilizar el siguiente fragmento de código JavaScript para permitir llamadas de varios dominios:

if (navigator.userAgent.indexOf("Firefox") != -1) { 
    try { 
     netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 
    } 
    catch (e) { 
     alert("Permission UniversalBrowserRead denied -- not running Mozilla?"); 
    } 
} 

Parece que hay an issue creado en la edición de cromo rastreador para lograr la misma funcionalidad, por lo que podría intentar iniciar Chrome con el argumento --disable-web-security. No sé en qué versiones funciona exactamente, pero al menos el WRT Tools de Nokia viene con una instalación de Chrome que, de hecho, permite cargar contenido desde otros sitios.

+0

Esta es, de hecho, la manera de probar su código. Aparece una advertencia y luego solo funciona. ¡Muchas gracias! – Shermozle

+1

Para el registro, esta es prácticamente la cadena equivalente de parámetros de inicio de Chrome/Chromium para el desarrollo: "--allow-file-access-from-files --disable-web-security --enable-file-cookies --disk- cache-size = 1 --media-cache-size = 1 " – miek

+9

Esto ya no funciona. –

6

Desafortunadamente, utilizando la siguiente:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); 

se ha desactivado en Firefox 5.

https://bugzilla.mozilla.org/show_bug.cgi?id=667312

+0

Quiero apuntar una cosa obviosly aquí. Si Firefox 5 no me deja hacer eso y realmente lo necesito, usaré Firefox 4 en su lugar. No es el fin del mundo. – erm3nda

2

Utilizando el cromo 13.07, se puede empezar con la seguridad desactivada:

/usr/bin/cromo navegador web --disable-seguridad

Eso es en Ubuntu 11, pero cambie la ubicación como su sistema.

+0

/opt/google/chrome/google-chrome --disable-web-security Eso funcionó para mí en Linux Mint 11.04, Google Chrome 14.0.8 –

0

En Chrome (& cromo) y por encima de 48 se debe añadir la bandera --user-data-dir así:

chromium-browser --disable-web-security --user-data-dir 

y funciona.

Cuestiones relacionadas