gpt4 book ai didi

jquery - 内容处置不会导致另存为

转载 作者:行者123 更新时间:2023-12-01 00:00:54 26 4
gpt4 key购买 nike

我有以下代码:

Response.ClearContent();
Response.AddHeader( "Content-type", "application/vnd.ms-excel");
Response.AddHeader("content-disposition", "attachment;filename=test.xls");
Response.ContentType = "application/excel";
var swr = new StringWriter();
var tw = new HtmlTextWriter(swr);
grd.RenderControl(tw);
Response.Write(swr.ToString());
Response.Flush();
Response.End();
tw.Close();
swr.Close();

此操作是由以下 jquery 代码触发的:

   <img src="../../../../Content/images/Excel-icon.png" 
onclick = "alert ($('#Filter').serialize());
$.ajax({
type: 'POST',
url: '<%=Url.Action( "Excel") %>',
data: $('#Filter').serialize(),
success : function (data, textStatus, jqXHR)
{ alert (data);},
error: function (jqXHR, textStatus, errorThrown)
{ alert (textStatus + ' ' + errorThrown);}
});" />

我已与 fiddler 确认 header 具有预期值。我还可以使用 Web View 查看 fiddler 中的数据。

此外,当我显示成功函数中的数据内容时,它具有我尝试导出到 Excel 的表的原始 html。

预先感谢您的帮助。

最佳答案

哦,不,您不能使用 AJAX 下载文件。 AJAX 调用被执行,文件被传输到客户端,您的成功回调被执行并传递文件的内容,这就是您将被卡住的地方。出于明显的安全原因,您无法对这些数据做太多事情。您无法将其保存到客户端计算机。在此阶段您无法显示“另存为”的提示。

因此,删除您的 javascript AJAX 调用并使用正常的 GET 或 POST 请求调用您的 Controller 操作。

关于jquery - 内容处置不会导致另存为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com