認証が必要なAPIなどにアクセスして、レスポンスをファイルとしてダウンロードしたいときのやり方。
async function download(url, filename) {
// ダウンロードしたいURLにアクセス
let res = await fetch(url, {
method: 'GET',
headers: { 'Authorization': "xxxxxxxxxxxxxxxxxxx" },
}).catch((err) => err.data)
if (res.status == 200) {
// blobとして内容を読み出す
const content = await res.blob()
// オブジェクトURLを生成
const objectUrl = (window.URL || window.webkitURL).createObjectURL(content)
// オブジェクトURLをhref属性に設定したaタグを作成
const a = document.createElement('a')
a.href = objectUrl
a.download = filename
// aタグをクリック
a.click()
}
}
var url = "https://www.yahoo.co.jp/"
var filename = "index.html"
await download(url, filename)