如何:jQuery发布到ashx文件强制下载结果?

我有一个ashx处理程序,它从请求中获取’html’属性,然后将其返回给任何调用它的东西。 我还将Content-Disposition设置为附件。

直接调用页面按预期工作,强制使用另存为对话框进行下载。

我坚持的是:我需要从javascript(jQuery)做到这一点。 我将发布div的内容并进行进一步处理。

有人能给我一些关于如何做到这一点的指示吗?

非常感谢。

我(实际上,做:-))有一个带有隐藏字段的表单,将div的内容复制到字段,然后将表单提交给隐藏( display: none )iframe。

在页面上包含隐藏的iframe:

  

(例如,它最初是空白的。我实际上确实使用了一个blank.html文件,它听起来就像是这样,而不是(说) about:blank因为后者在某些情况下不能正常工作;我不记得了细节。)

告诉表单提交到iframe并触发你的ashx文件:

 

将div的内容复制到字段:

 $("#fieldId").val($("#divId").html()); // Either .html() or .text(), depending on what you want 

提交表格:

 $("#formId").submit(); 

(适当填写各种“……”)

在我的情况下,我显示一个覆盖div告诉用户我正在做什么,并启动一个计时器,监视iframe的内容(用于错误消息)和状态cookie(有关cookie技巧的更多信息,请参阅此答案 ) 。 根据结果​​更新或删除叠加层。