Mam iframe na mojej stronie, a wewnątrz tego iframe I wykonanie kodu:
$.ajax({
url: '/SamplePage/ExportToExcel',
async: false,
data: par,
type: 'POST'
});
Response jest zwracana w porządku, jednak nie pojawia się okno dialogowe „Zapisz załącznik”, nic się nie dzieje ... Aby wszystko było jasne, nagłówki są w porządku (rozmieszczenie zawartości, typ mime itp.), ponieważ kiedy wykonuję eksport, używając zwykłego formularza, działa. Wygląda na to, że ma coś wspólnego z wywołaniem ajax. Czy to jakoś zadziała?
Dzięki
nemesisfixx - dziękuję za tę wspaniałą odpowiedź. Szybkie pytanie ... Czy istnieje sposób, aby strona oryginalna wiedziała, kiedy załącznik został pobrany? Na przykład - chciałbym uniemożliwić użytkownikowi klikanie przycisku pobierania więcej niż jeden raz, więc wyłączam go zaraz po kliknięciu. Jednak po zakończeniu pobierania chciałbym go ponownie włączyć (aby mogła poprosić o kolejne pobranie z nowymi ustawieniami/danymi wejściowymi). Czy można to zrobić? – mattstuehler
@mattstuehler, nie jestem pewien prostoliniowego podejścia, ale prawdopodobnie mógłbyś wystrzelić wywołanie po stronie serwera do fron-end (pomyśl o protokołach Comet), który powiadomiłby Twoją aplikację, gdy pobieranie zostało ukończone po stronie serwera . Innym "łatwiejszym" podejściem może być po prostu czekanie na określone okno czasowe, po wygaśnięciu którego, po prostu zakładamy, że pobieranie musi być zakończone, a następnie można wyświetlić przycisk (pomocne mogą być wcześniejsze informacje o średnim rozmiarze pliku yo) . – nemesisfixx