2011-08-06 8 views
9

Estoy teniendo un problema de AJAX en Chrome, dando el siguiente error:NETWORK_ERR: XMLHttpRequest Excepción 101

Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101 

Este es mi código:

function IO(filename) { 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     xmlhttp = new XMLHttpRequest(); 

    } else if (window.ActiveXObject) { // IE 
     try { 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try { 
       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e) { } 
     } 
    } 

    xmlhttp.open("GET", filename+"?random="+Math.floor(Math.random()*100000001), false); 
    xmlhttp.send(); 

    if(xmlhttp.readyState==4) 
     return xmlhttp.responseXML; 
} 
+0

¿Cuál es 'filename' que está utilizando? – pimvdb

Respuesta

2

Además de sucediendo cuando ir a buscar una cruz -sitio URL sin encabezados adecuados, este error se produce cuando se busca un archivo local a través de XHR (AJAX). Aparentemente, Chrome está siendo excesivamente entusiasta con sus medidas de seguridad entre sitios, sin darse cuenta de que un archivo: la URL debe considerarse el mismo sitio que otro archivo: URL. Este es un problema para muchas aplicaciones locales, especialmente Jasmine (un marco de prueba de JavaScript).

Sigue sucediendo a partir de la versión de Chrome 16.0.912.63.

No conozco ninguna solución. La solución alternativa es usar Firefox, o cualquier otro navegador, para ejecutar aplicaciones que se sirven fuera del archivo: URL.

+5

Puede iniciar Chrome con el modificador '--allow-file-access-from-files'. –

12

La solución es establecer el parámetro async a true:

xmlhttp.open("GET", filename+"?random="+Math.floor(Math.random()*100000001), true); 
+1

W00t. esto funcionó para mí. – gnarbarian