У меня есть 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 в моем коде, поскольку я не совсем уверен.
Любая информация приветствуется !