ファイルダウンロードでエラー「Resource interpreted as Document but transferred with MIME type application/zip」

ファイルをダウンロードさせるリンクを用意して、試しに踏んでみたら「undefined」とだけ表示され、ファイルがダウンロードされない、という問題があった。

developer consoleには以下のようなエラーがでる。

Resource interpreted as Document but transferred with MIME type application/zip


ちょっと調べたらjQuery mobileを使っていた、というのがオチだった。

jQuery mobileは使ったことがなかったのだけど、jQuery mobileを使用しているページでは、anchorタグを踏むとajaxでコンテンツを取得してdata-role=pageの部分だけを描画するようになってるらしく、ファイルをダウンロードさせるようなリンクだとおかしなことになる。

もちろんajaxでファイルを取得しない方法も用意されていて、anchorタグにdata-ajax='false'を指定することで解決した。

<a href="/file_download" data-ajax="false">ダウンロードする</a>