よりモダンなアプローチをお探しの方は、を使用できますfetch API
。次の例は、スプレッドシートファイルをダウンロードする方法を示しています。以下のコードで簡単にできます。
fetch(url, {
body: JSON.stringify(data),
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
})
.then(response => response.blob())
.then(response => {
const blob = new Blob([response], {type: 'application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'});
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = downloadUrl;
a.download = "file.xlsx";
document.body.appendChild(a);
a.click();
})
このアプローチは他のXMLHttpRequest
ソリューションよりもはるかに理解しやすいと思います。また、これはjQuery
アプローチに似た構文を持ち、追加のライブラリを追加する必要はありません。
もちろん、この新しいアプローチはIEでは機能しないため、開発中のブラウザーを確認することをお勧めします。完全なブラウザ互換性リストは、次のリンクにあります。
重要:この例では、指定されたをリッスンしているサーバーにJSONリクエストを送信していますurl
。これurl
は設定する必要があります。私の例では、この部分を知っていると想定しています。また、リクエストが機能するために必要なヘッダーも検討してください。私はJSONを送信しているので、Content-Type
ヘッダーを追加してに設定する必要application/json; charset=utf-8
があります。これにより、サーバーが受信する要求のタイプをサーバーに通知します。