Событие после того, как страница отправила запрос и страница перестала загружаться - PullRequest
0 голосов
/ 18 марта 2020

Я отправляю форму, которая отправляет запрос бэкэнду, C# action. Сервер создает файл PDF и отправляет его обратно в браузер для загрузки. Как мне поймать это событие? Я просто хочу отобразить сообщение пользователю, когда PDF отправляется с сервера. Я не могу использовать ajax, потому что отправляю запрос через форму и ожидаю, что ответом будет вложение.

        public ActionResult ConvertHTMLtoPDF(string htmltoPDfFullUrl)
        {
            Byte[] res = null;
            using (MemoryStream ms = new MemoryStream())
            {
                // not important logic

            }

            var stream = new MemoryStream(res);

            return new FileStreamResult(stream, "application/pdf")
            {
                FileDownloadName = "some name.pdf"
            };

        }
$(document).on('click', ".formSubmitDiv", function () {
    formSubmit();

})
function formSubmit() {
    $('#htmltoPDfFullUrl').val(fullHTMLLIVE);

    document.getElementById('beginConvertHTMLtoPDF').submit();
}
@using (Html.BeginForm("ConvertHTMLtoPDF", "Home", FormMethod.Post, new { id = "beginConvertHTMLtoPDF" }))
{
    <input type="hidden" name="htmltoPDfFullUrl" id="htmltoPDfFullUrl" />
}

1 Ответ

0 голосов
/ 18 марта 2020

Мне удалось решить эту проблему, отправив повара ie с сервера и постоянно проверяя наличие этого повара ie на клиенте.

Так я отправляю повара ie.

Response.Cookies.Add(new HttpCookie(serverCookieResponse + "_CookiePDFResponse", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss:ff")));

Вот так я проверяю, был ли получен повар ie или нет

function checkCookie() {
    let cookieName = $('#serverCookieResponse').val() + "_CookiePDFResponse";
    var cookieVal = $.cookie(cookieName);
    if (cookieVal == null || cookieVal === 'undefined') {
        setTimeout("checkCookie();", 1000);
    }
    else {
        document.cookie = cookieName + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }
}

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...