亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何創建 json 文件,然后在 get 請求中將其返回給 React 應用程序

如何創建 json 文件,然后在 get 請求中將其返回給 React 應用程序

九州編程 2024-01-28 16:43:10
我正在嘗試創建一個 JSON 文件sample.json,并且我正在嘗試在 Spring Boot 后端控制器中創建此文件,并能夠將其發送到我的 React 應用程序,在該應用程序中它將觸發文件下載到客戶端我想確保我實際上從 http get 請求給出的響應中返回實際文件,并且我想知道如何觸發實際響應 React 的下載fetch('/api/download')  .then((res) => {     return res.blob();  }).then((body) => {      console.log(body);      setTimeout(() => {         URL.createObjectURL(body)      }, 300);  }).catch((error) => {     console.log(error);  })我的最終目標是能夠通過 get 請求在后端生成文件并能夠觸發下載,請告訴我這是如何實現的。謝謝。
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

最簡單的方法是不使用fetch而是使用普通的鏈接元素:


<a href="/api/download" download="sample.json">Click to download</a>

在所有現代瀏覽器中,該download屬性將導致瀏覽器將鏈接響應保存為文件。沒有fetch要求。


但是,如果您絕對需要fetch操作,那么您基本上可以在 JS 本身中執行此操作:獲取結果,然后創建一個<a>,將其href屬性設置為文件 blob,并確保download設置該屬性:


fetch(...)

.then(res => res.blob())

.then(blob => {

  const blobURL = URL.createObjectURL(blob);


  // create our <a> to force a download for the response

  const dl = document.createElement(`a`);

  dl.href = blobURL;

  dl.download = `sample.json`;


  // In order for the link to "trigger" we need to add it to the document.

  // If we don't, dl.click() won't do anything. So add it, click it, then remove it.

  dl.style.display = `none`;

  document.body.appendChild(dl);

  dl.click();

  document.body.removeChild(dl);

});


查看完整回答
反對 回復 2024-01-28
  • 1 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號