Как запустить загрузку из API через почтовый запрос, используя fetch? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть Golang сервер в качестве внутреннего API, который имеет маршрут в / api / send, который принимает запрос на публикацию типа json и получает указанный путь к файлу для отправки указанного файла по HTTP.

Из моего приложения reactjs я хотел бы получить этот API и начать загрузку файла в браузере.

Вот мой код:

Бэкэнд:

func SendFile(w http.ResponseWriter, r *http.Request) {
  decoder := json.NewDecoder(r.Body)
  var t ReqBody
  err := decoder.Decode(&t)
  if err != nil {
    fmt.Println(err)
  }
  http.ServeFile(w, r, t.Path)
}

reactjs кнопка onClick:

fetch("http://localhost:5000/api/send"), {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ "root": "/Users/home", "path": "/Users/home/file.docx" })
  })
  .then(file => window.open(file))

Я делал это раньше с помощью запроса GET, когда вы вызываете window.open (url), и он начинает загрузку, но так как я передаю в нескольких длинных строках, которые должны быть путями к файлам, я подумал, что с запросом POST будет легче иметь дело, вместо размещения переменных в URL.

То, что происходит, когда я запускаю этот код сейчас, - это новый вкладка моего приложения реакции открывается с «[object% 20Response]» в URL, я подозреваю, что это может быть из оператора .then в моем коде, поскольку я не совсем уверен.

Любая информация приветствуется !

...