【问题标题】:HttpHandler write to redirected page before sending fileHttpHandler 在发送文件之前写入重定向页面
【发布时间】:2012-11-03 02:14:09
【问题描述】:

我似乎永远无法在 .net 上找到任何文档,而官方文档(如果它们是正确的)是一个无望的迷宫。

我使用 jQuery 将用户重定向到新页面上的 HttpHandler,我在该页面上即时构建和发送 html 表(并将其称为 excel 文件)。借助堆栈器,我可以毫不拖延地构建和发送文件(即使是巨大的文件)。

我想在新页面上告诉用户我正在构建文件等,因为文件正在构建和发送。

当我在发送我的 excel 标头之前执行 context.response.write 时,我得到:

“/”应用程序中的服务器错误。

发送 HTTP 标头后,服务器无法附加标头。

有什么方法可以实现我想要的吗?

提前非常感谢!

【问题讨论】:

  • 你试过打电话给Response.ClearHeaders()吗?
  • 现在它说“服务器在发送 HTTP 标头后无法清除标头。”非常感谢您的尝试!

标签: c# jquery file httphandler response.write


【解决方案1】:

您到底想达到什么目的?据我了解,您正在构建某种 excel 表并将其发送给客户。我假设为了让客户将您的内容识别为 Excel 表格,您尝试发送一些响应标头(例如 mime 类型)。

尽管您必须始终在正文之前发送任何类型的标头,但您将无法在显示给用户的响应流中写入通知,因为用户也会保存您对 excel 文件的通知。

所以我认为您将需要一个带有通知的新登录页面以及某种 javascript 或元重定向(或超链接或按钮)到强制创建和下载 excel 的 url。

【讨论】:

    【解决方案2】:

    您需要的是一个重定向到下载页面的临时登陆页面。

    在临时页面上,您可以有您的消息和一个小脚本,以将用户发送到下载。

    <body>
    <div> Your file is getting created... Please wait patiently.
    </div>
    <script>
        window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar';
    </script>
    </body>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 2017-05-19
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多