Home > OS >  XMLHttpRequest returns null on Apache server but not lo
XMLHttpRequest returns null on Apache server but not lo

Time:07-20

The following snippet of code computes the size of files located at url on my local system using 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();
}

When I deploy the code to my Apache server, however, this.getResponseHeader returns null, although the provided url correctly points to a file. I am considering different options for why this is the case (e.g., incorrect file permissions) but haven't found a solution yet. I also followed this link to change my server configuration to allow CORS but that didn't help. Any help would be greatly appreciated.

CodePudding user response:

I fixed the issue. In my .htaccess, I had added some filters to allow for HTML compression as explained here. However, this made my Apache server not include content-length in the html response (see here for more details). By getting rid of HTML compression in .htaccess, content-length is now included by the server.

  • Related