See Stack Overflow for details. Briefly, Ajax GET requests on Chrome (circa 33.0.1750.152 on Mac OS X, also seen on Windows) with responseType set to "blob" sometimes see blobs whose "size" property is smaller than expected from the Content-Length header. On converting to a binary string via FileReader, however, this 'short' blob yields a longer string, whose length and contents are exactly as expected.
This problem does not appear to affect other browsers, including Safari and Firefox, strongly indicative of a Chrome bug. It is reproducible with Apache (after adding the headers "Cache: private, no cache" and "Connection: close" and removing If-Modified headers).
It is very random in its appearance. "Connection: close" pushes up the reproduction rate significantly. Reload if you don't get a hit in 50 iterations or so.
UPDATE: Cannot repro with Chrome 34.0.1847.116, hopefully fixed.
URL: