Podczas próby utworzenia funkcji pobierania plików na moim serwerze NodeJS napotkałem nieoczekiwane zachowanie. Mam interfejs API REST (ekspresowe), który wywołuje funkcję eksportu danych, który tworzy plik CSV na serwerze i używa res.download('path/to/file')
, aby uruchomić pobieranie. Nagłówki odpowiedzi obejmująContent-Disposition: załącznik nie powodujący pobrania okna dialogowego
Content-Disposition:attachment; filename="indicators.csv"
Content-Length:30125
Content-Type:text/csv; charset=UTF-8
więc wszystko wydaje się być w porządku.
Chodzi o to, że otrzymuję odpowiedź od serwera jako zwykły tekst. Odpowiedź zawiera wszystkie dane znajdujące się w pliku CSV, ale nie uruchamia okna dialogowego pobierania pliku przeglądarki, tak jak zamierzałem. Próbowałem zarówno w Chrome, jak i FF. Problem utrzymuje się w obu.
Wszelkie pomysły?
Aktualizacja
udało mi się zrobić to praca, tworząc fikcyjny formularz i przy użyciu jego przedstawienia działań, aby moje rozmowy AJAX. Ale to brzydki hack i wciąż szukam bardziej eleganckiego rozwiązania.
Jak widzisz na moim pytaniu, opcja 1 jest tym, z czego skorzystałem. Ale muszę przyznać, że opcja 2 może być bardziej eleganckim rozwiązaniem w moim przypadku. – yarons