Я пытаюсь реализовать ссылку для скачивания для пользователей, чтобы загрузить запись в .txt файле.
Сначала это был простой <a>
тег
<a href="http://localhost:8080/service/api/downloadFile?fileType=daily&trsDate=20190918">download</a>
, который я мог скачатьфайл с сервера в формате .txt. Но я обнаружил, что это не приносит Auth заголовок. Поэтому я попытался использовать метод http get для его извлечения.
service.js
getCdrFile(url) {
return this.http.get<any>(`${this.env.service}/service/api/downloadFile?` + url);
}
component.js
downloadFile(url) {
this.service.getCdrFile(url).subscribe(
data => {
console.log(data);
},
error => {
console.log(error);
}
);
}
Я могу успешно вызвать API с помощью auth head, после чего ничего не произошло после того, как я нажал кнопку загрузки, но txt-данные отображались на вкладке "response" в инструменте разработчика Chrome. Кроме того, я ничего не получил от console.log(data);
в своем запросе http.
Можно ли как-нибудь загрузить файл? спасибо!
(и вот мой ответ)
# GENERAL
Request URL: http://localhost:8080/service/api/downloadFile?fileType=daily&trsDate=20190918
Request Method: GET
Status Code: 200
Remote Address: 127.0.0.1:8080
Referrer Policy: no-referrer-when-downgrade
# RESPONSE HEADER
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Connection: keep-alive
Content-Disposition: attachment; filename=20190918.txt
Content-Type: application/json
Date: Wed, 02 Oct 2019 03:51:01 GMT
Expires: 0
Pragma: no-cache
Server: nginx/1.15.2
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block