【问题标题】:Request dynamic .txt file from aspx in javascript从 javascript 中的 aspx 请求动态 .txt 文件
【发布时间】:2013-02-18 15:21:26
【问题描述】:

我正在尝试在 javascript 中发出请求以调用 aspx 函数,目的是在 IE 中将 .txt 文件作为另存为对话框返回(仅需要 IE 支持)。

问题是我需要 Javascript 向 aspx 发送一个字符串,然后它使用该字符串动态生成一个 .txt 文件以发送回以保存。

类似于此处的动态示例但带有 txt 文件http://www.west-wind.com/weblog/posts/2007/May/21/Downloading-a-File-with-a-Save-As-Dialog-in-ASPNET

我需要向服务器发出什么请求才能将其恢复为“另存为”提示?

例子会很棒。

【问题讨论】:

  • “content-disposition”标头可用于告诉浏览器您要强制它以附件的形式下载内容。
  • 你有例子或代码吗?我已经尝试过“内容处置”但失败了......
  • 也许您可以展示您实际尝试过的内容?
  • 当您尝试与您通过的链接相同的方式时,会发生什么?
  • 文本在响应正文中传回,然后浏览器在窗口中显示文本,而不是打开另存为对话框。

标签: c# javascript asp.net .net


【解决方案1】:

好的,知道了! 所以我们在这里为任何感兴趣的人提供:

Asp.net 服务器(保存.aspx 文件):

        string txtString = Request["txtString"];

        Response.Clear();

        Response.AppendHeader(
        "Content-Disposition", 
        "attachment; 
        filename=myFile.txt"
        );

        Response.ContentType = "application/x-download";

        Response.Write(txtString);


        Response.End();

感谢这篇文章!!: JavaScript post request like a form submit

Javascript:

function saveTxt() {

    var myString = getTxtString();

    var form = document.createElement("form");
    form.setAttribute("method", "POST");
    form.setAttribute("action", "save.aspx");

    var hiddenField = document.createElement("input");
    hiddenField.setAttribute("type", "hidden");
    hiddenField.setAttribute("name", "jsonString");
    hiddenField.setAttribute("value", myString);

    form.appendChild(hiddenField);

    document.body.appendChild(form);
    form.submit();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2016-04-09
    相关资源
    最近更新 更多