如何解决jQuery-提示$ .get上的excel文件
| Internet Explorer用于在执行Response.Write后提示用户下载Excel文件。Response.ContentType = \"application/vnd.ms-excel\";
Response.AddHeader(\"Content-Disposition\",\"attachment;filename=\\\"sheet.xls\\\"\");
Response.RedirectLocation = \"export.xls\";
Response.Charset = \"\";
EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
dataGridResult.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
当我通过按钮单击事件回发到页面时,此方法有效。
我将页面用作服务并执行$.get()
,但是结果以HTML的形式发送回。不提示我打开excel文件。如何将提示发送给用户?
$.get(\'ExcelService.aspx\',{ batches: input },function (data) {
alert(data);//I see HTML
});
解决方法
这是一个类似的线程,但存在类似的问题(\“我想发出一个异步GET请求,该请求将返回具有MIME内容类型的文档,并导致它带来浏览器的“保存”对话框。 )
如何使用$ .ajax()GET响应指定内容类型和内容处置
那里的人提供了一种解决方法:
如果您想以编程方式弹出一个保存对话框,则可以使用jQuery将隐藏的iframe附加到带有URL的src的页面上。这将在必要时弹出对话框。
样品
jQuery-单击(不需要ajax / get)
var dynamicUrl = \'ExcelService.aspx?batches=\' + input;
$(\'#excelPopup\').attr(\'src\',dynamicUrl);
window.frames[\"#excelPopup\"].location.reload();
的HTML
<iframe id=\"excelPopup\" style=\"visibility:hidden;height:0px;width:0px;\"></iframe>
,您可以尝试Ajax帖子
$.ajax({ dataType: \"HTML\",cache: false,type: \"GET\",url: \'ExcelService.aspx\';
这将提示获取,并且比仅使用jquery具有更多的灵活性
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。