使用Jquery和Ajax在ASP.Net中保存文件

Ari*_*911 6 asp.net ajax jquery file save

我有一个使用jQuery和AJAX调用服务器端脚本来创建一个文本文件,并返回以下响应按钮:

Response.ContentType = "csv";
Response.AddHeader("Content-disposition", "attachment; filename=" + fName);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(btFile);
Response.End();
Run Code Online (Sandbox Code Playgroud)

但是,不会出现保存对话框.如果我不使用Ajax和使用相同的代码执行完整的回发,它的工作原理.有任何想法吗?

这是jQuery代码:

$(function() {
    $('#reportButton').click(function() {
        $.ajax({
            type: "POST",
            url: "GenerateReport.aspx",
            data: "id=0",
            success: function(){
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

pat*_*ech 3

您可以通过使用 jQuery 动态创建表单和将其发布到的 iframe 来伪造它,而不是使用 AJAX(正如 Brian 提到的那样,这不起作用)。这是我发现的一个示例- 您应该仔细阅读注释以进行一些改进(例如使用动态创建的 iframe 来防止页面未返回正确的标头时出现问题)。