El siguiente fragmento de código calcula el tamaño de los archivos ubicados en url en mi sistema local usando Javascript
//returns file size given a URL function getFileSize(url, key) { var fileSize = ''; var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.onreadystatechange = function() { if (this.readyState == this.DONE) { if (this.status == 200) { fileSize = this.getResponseHeader('content-length'); //saves size in dictionary sizes sizes[key] = fileSize; } } }; http.send(); } Sin embargo, cuando implemento el código en mi servidor Apache, this.getResponseHeader devuelve un valor nulo, aunque la URL proporcionada apunta correctamente a un archivo. Estoy considerando diferentes opciones de por qué este es el caso (por ejemplo, permisos de archivo incorrectos), pero aún no he encontrado una solución. También seguí este enlace para cambiar la configuración de mi servidor para permitir CORS, pero eso no ayudó. Cualquier ayuda sería muy apreciada.
Solucioné el problema. En mi .htaccess , agregué algunos filtros para permitir la compresión de HTML como se explica aquí . Sin embargo, esto hizo que mi servidor Apache no incluyera content-length en la respuesta html (consulte aquí para obtener más detalles). Al deshacerse de la compresión HTML en .htaccess , el servidor ahora incluye la content-length .