Resolved the problem myself.
The problem was I was submitting my request as AJAX from the client. Hence the response sent back to the browser was simply being spat back out into the window. GIGO I believe is Chrome's approach instead of reading the Content-Type
header. (possible bug?)
I modified my jquery select to use the :not()
selector and exclude the "Generate CSV" button which sends the request to the server synchronously. This fixes the problem on Chrome.