Solución:
Hay una extensión de Firefox que agrega los encabezados CORS a cualquier respuesta HTTP que funcione en la última versión de Firefox (compilación 36.0.1) liberado 5 de marzo de 2015. Lo probé y funciona tanto en Windows 7 como en Mavericks. Lo guiaré a través de los pasos para que funcione.
1) Obtener la extensión
Puede descargar el xpi desde aquí (compilaciones del autor) o desde aquí (espejo, es posible que no se actualice).
O descargue los archivos de GitHub. Ahora también está en Firefox Marketplace: descárguelo aquí. En este caso, el complemento se instala después de hacer clic en instalar y puede pasar al paso 4.
Si descargó el xpi, puede saltar al paso 3. Si descargó el zip de GitHub, vaya al paso 2.
2) Construyendo el xpi
Debe extraer el zip, entrar en la carpeta “cors-anywhere-firefox-addon-master”, seleccionar todos los elementos y comprimirlos. Luego, cambie el nombre del zip creado como * .xpi
Nota: Si está utilizando la interfaz gráfica de usuario de OS X, puede crear algunos archivos ocultos, por lo que sería mejor utilizar la línea de comandos.
3) Instalación del xpi
Puede simplemente arrastrar y soltar el xpi en Firefox, o ir a: “acerca de: complementos”, haga clic en el engranaje en la esquina superior derecha y seleccione “instalar complemento desde archivo”, luego seleccione su archivo .xpi. Ahora, reinicia Firefox.
4) Hacer que funcione
Ahora, la extensión no funcionará de forma predeterminada. Debe arrastrar el icono de la extensión a la barra de extensión, pero no se preocupe. ¡Hay fotografías!
- Haga clic en el menú de Firefox
- Haga clic en Personalizar
- Arrastra CorsE a la barra.
- Ahora, haga clic en el ícono, cuando esté verde, los encabezados CORS se agregarán a cualquier respuesta HTTP
5) Probando si está funcionando
jQuery
$.get( "http://example.com/", function( data ) {
console.log (data);
});
JavaScript
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
console.log(xmlhttp.responseText);
}
}
xmlhttp.open("GET","http://example.com/");
xmlhttp.send();
6) Consideraciones finales
Tenga en cuenta que https a http no está permitido.
Puede haber una forma de evitarlo, pero está detrás del alcance de la pregunta.
about:config -> security.fileuri.strict_origin_policy -> false
Me di cuenta de que mi respuesta anterior tiene una votación negativa porque no especifiqué cómo deshabilitar específicamente la política de origen de FF. Aquí daré una respuesta más detallada:
Advertencia: Esto requiere una recompilación de FF, y la versión recién compilada de Firefox no podrá habilitar SOP de nuevo.
Consulte el código fuente de Firefox de Mozilla, busque nsScriptSecurityManager.cpp en el directorio src. Usaré el que se enumera aquí como ejemplo: http://mxr.mozilla.org/aviarybranch/source/caps/src/nsScriptSecurityManager.cpp
Vaya a la implementación de la función nsScriptSecurityManager :: CheckSameOriginURI, que es la línea 568 a la fecha 03/02/2016.
Haga que la función siempre devuelva NS_OK.
Esto desactivará SOP para siempre.
La respuesta del complemento del navegador de @Giacomo debería ser útil para la mayoría de las personas y he aceptado esa respuesta, sin embargo, para mis necesidades personales de investigación (TL; no lo explicaré aquí) no es suficiente y creo que otros investigadores pueden necesitar hacer lo que Lo hice aquí para matar completamente a SOP.