表单提交获取下载状态

思路:1 当submit后 1.1 后台接受请求,开始处理,处理完成后,准备下载文件,下载时给客户端写入cookie信息
1.2 当submit后,后台在处理,前台在调用setInterview,间隔的获取后台相应写入到站点的cookie值,如果该值被写
入后,在前台是客运获取到的,说明下载成功了 2 下载成功后清楚cookie和计时器

 

前段代码

 1 var VehicleNoPar = $("<input>");
 2         VehicleNoPar.attr("type", "hidden");
 3         VehicleNoPar.attr("name", "DownloadBookingIDs");
 4         VehicleNoPar.attr("value", DownloadBookingIdVal);
 5         form.append(VehicleNoPar);
 6 
 7         //将表单放置在web中 
 8         $("body").append(form);
 9 
10         var interval = setInterval(
11                 function () {
12                     var downloadSucess = getCookie("transReplayDownload");
13                     if (downloadSucess != undefined && downloadSucess != null && downloadSucess == "transReplayDownloadVal") {
14 
15                         clearInterval(interval);
16                         deleteCookie("transReplayDownload");
17 
18                         // 下载成功,刷新列表数据
19                         SearchData();
20                     }
21                     else {
22                         alert("下载中");
23                     }
24                 },
25                 1000,
26                 null
27             );
28 
29         //表单提交 
30         form.submit();

 

 

后台代码

 

 1 string userAgent = Request.ServerVariables["http_user_agent"].ToLower();
 2                 if (userAgent.IndexOf("firefox", System.StringComparison.Ordinal) == -1)
 3                 {
 4                     fileName = HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(fileName));
 5                 }
 6                 Response.AppendCookie(new HttpCookie("transReplayDownload", "transReplayDownloadVal"));
 7                 Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
 8                 Response.Charset = "GB2312";
 9                 Response.ContentEncoding = System.Text.Encoding.UTF8;
10                 Response.ContentType = "application/ms-excel";
11                 Response.WriteFile(filePath);
12                 Response.End();

 

转载于:https://www.cnblogs.com/yitong/p/5713795.html

在使用form表单提交的过程中,能够获取到返回结果的一种常见方式是通过使用JavaScript进行异步提交。我们可以通过以下步骤来实现。 首先,在HTML中创建一个包含form表单的页面,该表单内包含需要提交的输入框、按钮等元素。在form标签中添加一个id属性,以便在JavaScript中获取该表单。 接下来,在JavaScript中使用getElementById方法获取到form表单的引用,然后使用addEventListener方法添加一个submit事件的监听器。在监听器中,使用event.preventDefault()方法阻止表单的默认提交行为,以便我们自己进行处理。 然后,创建一个XMLHttpRequest对象,使用open方法指定HTTP请求的方法和URL地址。如果需要传递参数,则可以使用FormData对象来构建请求体。然后使用send方法发送请求。 当服务器返回结果时,可以在JavaScript中监听到请求的状态变化,并通过responseText属性获取到服务器返回的结果。可以将这个结果显示在页面中,或者作为进一步处理的数据。 最后,根据实际需要,可以对返回结果进行相应的操作,例如展示在页面上或者进行其他逻辑处理。 需要注意的是,由于涉及到跨域访问等安全限制,可能需要在服务器端进行相应的设置以确保可以获取到返回结果。 总的来说,使用form表单提交获取返回结果的基本步骤是:创建form表单页面、JavaScript中监听submit事件、异步发送请求、监听请求状态获取返回结果、对结果进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值