使用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文件强制下载结果?

最新更新