Angular - скачать файл с http get

Мой Java Rest API имеет следующий метод:

@Path("file")

...

private static final String TEMP_PATH = System.getProperty("java.io.tmpdir");

@GET
@Path("{key}")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response getXml(@PathParam("key") String key) throws Exception {
    String fileName = new SimpleDateFormat("dd_MM_yyyy_HH_mm_ss_").format(new Date()) + key + ".xml";
    PrintWriter writer = new PrintWriter(TEMP_PATH + fileName, "UTF-8");
    writer.println(getXML(key));
    writer.close();

    Response.ResponseBuilder responseBuilder = Response.ok(new File(TEMP_PATH + fileName));
    responseBuilder.header("Content-Disposition", "attachment; filename = " + fileName);
    return responseBuilder.build();
}

И мой клиент запрашивает файл

const path = 'localhost:8080/server/api/file/' + '1';
this.http.get(path);

Если я получаю доступ к URL-адресу из своего браузера, который запрашивает файл из http get, я могу его загрузить. Но это не работает в моем угловом приложении.

попробуйте этот window.open (путь);

Nitin Walia 17.07.2018 18:14

Определите «не работает». Что именно вы ожидаете, и что произойдет вместо этого? Обратите внимание, что вы должны подписаться на наблюдаемое, иначе ничего не произойдет.

JB Nizet 17.07.2018 18:23

Я ожидаю, что браузер откроет окно для загрузки файла, как это происходит, когда я использую тот же путь в строке поиска. Но ничего не происходит.

essejoje 17.07.2018 18:25

Этого не случится. Вы отправляете запрос AJAX, поэтому ваш код JS должен обработать ответ. Браузер не открывает диалоговое окно. Используйте простую ссылку на URL вместо отправки запроса AJAX.

JB Nizet 17.07.2018 18:33

Я не могу получить доступ к URL-адресу, потому что в производственной среде api защищен для структуры A. A.

essejoje 17.07.2018 22:51
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
5
210
0

Другие вопросы по теме