6

Sé que existe el problema de origen, pero la configuración de un servidor web no es una opción aquí. Firefox v14 no tiene ningún problema para cargar un archivo local. Chrome no tiene ningún problema después de agregar '--allow-file-access-from-files' ¿Hay alguna manera de arreglar también IE9? GraciasCómo habilitar la carga de archivos locales usando ajax en IE9


Editar: me di cuenta de la solución. Simplemente use ActiveXObject ("MSXML2.XMLHTTP.6.0") en lugar de XMLHttpRequest() para que IE9 supere el problema de denegación de acceso a archivos locales.

Respuesta

4

Ajax o no. HTTP es un protocolo de aplicación cliente-servidor. Sin un servidor, eso es simplemente no posible.

ACTUALIZACIÓN:

Possible en cromo (y Firefox) aparentemente. En cuanto a IE, puede leer en Mark of the Web.

+1

Servidor o no. Firefox y Chrome son ** posibles **. Entonces, ¿qué quieres implicar? – user1589188

+0

@ user1589188: Sí, disculpe mi ignorancia. He ** actualizado ** mi respuesta. Uno pensaría que debe haber una forma ¿cierto? Pero ayúdenos a entender ... ¿es esto algo que no puede lograr a través del almacenamiento en caché/almacenamiento de aplicaciones HTML5, etc.? –

0

Por lo que yo sé,

  1. Teniendo en cuenta los problemas de seguridad, javascript, mejor que no tener acceso a los archivos locales. Entonces no puede ser estándar.

  2. En AJAX, existen formas respectivas de acceder a los archivos locales para los respectivos navegadores.

  3. Para IE, como parece que ya sabe, al declarar inicialmente un objeto AJAX, debería usar new ActiveXObject().

  4. El AJAX de la biblioteca de JavaScript JQuery le permite acceder a los archivos locales. Creo que implementó todas las formas para diferentes navegadores, por ejemplo, ActiveXObject para IE. AJAX de JQuery es muy fácil de usar; a todos les gusta Pero como se mencionó anteriormente, hay problemas de seguridad. Dado que JQuery lo envolvió todo, JQuery puede ser peligroso para quien visite su sitio.

=========================================== ========================

ref: http://jquery.tiddlywiki.org/twFile.html (le dirá las formas de ejecución jQuery acceso a archivos locales)

0

en caso de que está utilizando requirejs 's text plugin, todo lo que tiene que hacer es añadir este al primer argumento require.config:

requirejs.config({ 
    config: { 
    text: { 
     createXhr: function(){ 
     return new ActiveXObject("MSXML2.XMLHTTP.6.0"); 
     } 
    } 
    } 
}); 

Quizás otras librerías JS utilizan una sintaxis similar Comida para el pensamiento.

Cuestiones relacionadas