2017-10-02 30 views
0

ボタンをクリックしてファイルをダウンロードしようとしていますが、ファイルをダウンロードしません。私のブラウザでURLに行くと、docxがダウンロードされます。fetch apiを使用してファイルをダウンロード

フェッチ要求:

const response = await fetch(`/template/${id}/docx`, { 
    method: 'GET', 
    credentials: 'include', 
}); 

const blob = await response.blob(); 

const file = new File([blob], id, {type: blob.type, lastModified: Date.now()}); 

応答:

enter image description here

+2

タグを使用するとファイルが自動的にダウンロードされ始めますdownload mrdeleon

答えて

2

fetch呼び出しはResponseオブジェクトに解消またはエラーで拒否のいずれか。あなたは(あなたのケースでバイナリブロブはおそらくある)レスポンスボディを望むなら、あなたは試みることができる:あなたはまだそれを表示するの世話をしなければならない

const response = await fetch(`/template/${id}/docx`, { 
    method: 'GET', 
    credentials: 'include', 
}); 
const doc = await response.blob() 

、ディスク上にそれを書いて、あなたがしたいものは何でもそれでやってください。

+0

docxに変換するにはどうすればよいですか? blob変換を行わずに直接ファイルをダウンロードする方法はありますか? – AnAspiringCanadian

+0

私はコードを修正しました。 – AnAspiringCanadian

+1

ダウンロードはどういう意味ですか?あるイベントで標準ファイルのダウンロードダイアログを表示し、そのファイルをダウンロードさせますか?そのような場合は、次のようなことをするだけです。https://stackoverflow.com/questions/3749231/download-file-using-javascript-jquery –

関連する問題