使用jQuery Post从.ashx获取文件

此问题来自我提出的另一个问题 – 将客户端数据传递到服务器以创建Excel或CSV文件 。

我有一个客户端页面,它构建一个JSON对象以发送到服务器,我有服务器代码,可以将该JSON对象解析为SQL命令,最终得到所需数据的数据集。

我最初将JSON对象传递给.asmx Web服务,该服务将返回包含我的数据的JSON对象。 现在我想朝不同的方向前进并将数据作为.csv文件返回。

我知道我可以尝试将我的JSON对象放入查询字符串并调用我的.ashx页面,但JSON对象可能会变大,所以我试图使用POST的Request.Form。

我的问题和缺乏理解是如何使用jQuery发布到.ashx页面并让它将.csv文件返回给客户端。 如果我直接导​​航到.ashx页面(并修改页面以硬编码传递的数据),我得到的.csv文件返回给我没问题(即我得到打开/保存文件的提示)。 如果我从jQuery对.ashx文件进行POST并发送我的JSON对象,我会得到一个包含字符串数据的响应,而不是获得.csv。

那么,有什么我想念的,或者我只是想做一些我不能或不应该做的事情?

我想过将我的JSON对象传递给.asmx Web服务,该服务将JSON对象存储到数据库中并返回一个ID,然后使用window.location浏览到.ashx,并将ID作为查询字符串参数然后生成.csv文件,但我认为可能有一种方法可以避免中间步骤并使用POST执行此操作。

对不起,如果这有点散漫和脱节。 我很乐意澄清任何对任何人都没有意义的部分。

我正在努力做一些与我们说话相似的事情。

看看这个问题。 它可能对你有所帮助。

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