Backendで作成したPDFを、BFFを通してダウンロードしたい
[Nuxt.js]から[Nestjs]にaxiosでリクエストを投げて、[NESTJS]で作成したPDFをブラウザでダウンロードする仕組みを作成しています。
①[Nuxt.js(axios)]→②[NESTJS]→③[Nuxt.js] の流れでは正常にダウンロードできました。
BFFを通す必要があるので[Nuxt.js]のPJに[express]のサーバを作りました。
⑪[Nuxt.js(axios)]→⑫[express(axios)]→⑬[NESTJS]→⑭[express]→⑮[Nuxt.js]という流れでデータを戻そうとしたのですが、上手くいきませんでした。
①と⑪と⑫の[axios]の設定は同じです。
Requestの設定もしくは、Responseの戻し方に問題があると思うのですが、解決できませんでした。
どなたかご存じの方がいらっしゃいましたら、ご教示いただけないでしょうか。
該当のソースコード
①⑪[Nuxt.js(axios)]
await axios .post(url, post_body, { responseType: "arraybuffer", headers: { Accept: "application/pdf", }, }) .then((response) => { const blob = new Blob([response.data.data], { type: "application/pdf" }); const url = (window.URL || window.webkitURL).createObjectURL(blob); const a = document.createElement("a"); a.href = url; a.download = "test.pdf"; document.body.appendChild(a); a.click(); document.body.removeChild(a); }) .catch((res) => { alert("失敗。"); return; });
⑫[express(axios)]
await axios.post(url, post_body, { responseType: "arraybuffer", headers: { Accept: "application/pdf", }, }) .then((response) => { ※ ↓ 試してみた return のパターン return res.send(response.data); return res.send(response) return res.data.send(response.data) res.send(response.data) return response.data ※ ↑ 試してみた return のパターン }).catch(error => { return res.send(error) });
あなたの回答
tips
プレビュー