【问题标题】:Using Jquery and Ajax to save a file in ASP.Net使用 Jquery 和 Ajax 在 ASP.Net 中保存文件
【发布时间】:2010-06-24 16:08:27
【问题描述】:

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

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

但是,保存对话框不会出现。 如果我不使用 ajax 并使用相同的代码执行完整的回发,它就可以工作。有什么想法吗?

这里是 jQuery 代码:

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

【问题讨论】:

    标签: asp.net jquery ajax file save


    【解决方案1】:

    您可以通过使用 jQuery 动态创建表单和 iframe 来伪造它,而不是使用 AJAX(正如 Brian 提到的那样,它不起作用)。 Here is an example I found -- 您应该通读 cmets 以获得一些改进(例如使用动态创建的 iframe 来防止您的页面没有返回正确的标题时出现问题)。

    【讨论】:

      【解决方案2】:

      我认为问题在于 AJAX,如果请求是作为 JQuery 之外的标准请求发出的,您会看到保存对话框。 JQuery 请求会将数据流式传输到回调...

      【讨论】:

        猜你喜欢
        • 2014-04-27
        • 2017-12-25
        • 1970-01-01
        • 1970-01-01
        • 2018-06-07
        • 2013-02-20
        • 1970-01-01
        • 1970-01-01
        • 2019-09-15
        相关资源
        最近更新 更多