为了账号安全,请及时绑定邮箱和手机立即绑定

页面发送请求并且页面停止加载后的事件

页面发送请求并且页面停止加载后的事件

守候你守候我 2022-05-22 19:21:30
我正在提交一个向后端发送请求的表单,C# 操作。后端生成一个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 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

我设法通过从服务器发送一个 cookie 并在客户端上不断检查这个 cookie 来解决这个问题。


这就是我发送cookie的方式。


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

这就是我检查cookie是否已收到的方式


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;';

    }

}

希望这对某人有帮助!


查看完整回答
反对 回复 2022-05-22
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号