Javascript xhrpost在服务器上实时下载生成的excel文件

Javascript xhrpost在服务器上实时下载生成的excel文件,javascript,rest,post,dojo,download,Javascript,Rest,Post,Dojo,Download,我有以下要求 我有一个数据网格,它有大量的数据。我有一个下载按钮,当点击数据网格数据必须下载到excel。我希望通过使用xhrpost的rest调用将此数据网格数据发送到服务器。利用这些数据,我将在服务器端动态构建一个excel文件,并将响应返回给客户端。我的客户机看到此响应时应打开弹出窗口,下载响应并另存为文件 我在这里看到以下问题: 数据是巨大的。所以,我不能使用window.open方式以GET格式发送数据 我在服务器上没有一个可以访问文件的URL,因为我正在动态生成文件并向客户端发送响应

我有以下要求

我有一个数据网格,它有大量的数据。我有一个下载按钮,当点击数据网格数据必须下载到excel。我希望通过使用xhrpost的rest调用将此数据网格数据发送到服务器。利用这些数据,我将在服务器端动态构建一个excel文件,并将响应返回给客户端。我的客户机看到此响应时应打开弹出窗口,下载响应并另存为文件

我在这里看到以下问题:

  • 数据是巨大的。所以,我不能使用window.open方式以GET格式发送数据
  • 我在服务器上没有一个可以访问文件的URL,因为我正在动态生成文件并向客户端发送响应
  • 如何实现使用xhrpost动态下载文件的用例,而不将文件存储在任何地方

    请回答,因为我打破了我的头如何做到这一点?这将大有帮助

    谢谢,
    Sreenivas

    为什么要将数据从datagrid(客户端)发送回服务器?您不能使用生成datagrid的相同请求在服务器上生成excel文件吗?当您的服务器生成CSV数据时,设置HTTP头
    内容处置:附件;filename=“grid.csv”
    。这将提示客户端使用默认文件名
    grid.csv
    保存,而不是在浏览器中显示生成的内容。然后,可以通过Excel读取csv文件。这就是你要问的吗?不,我不能使用与生成网格相同的数据,因为用户覆盖了一些网格数据项,因为其中一些是可编辑字段。因此,数据各不相同。第二,我想明确地将这些数据传递给服务器,因为有了这些数据,我想进行一些数据库检查,以便做出一些决定。@rojo:我正在设置http头,正如您所说,但我的xhrpost是这样的:dojo.xhrpost(url:someUrl,contentType:“application/json”,load:function(response){});这里的响应是来自服务器的数据,我为其设置了HTTP头,但是在从服务器获得响应变量的响应之后,我该怎么做,这样它就会打开一个弹出窗口或下载到本地系统?@rojo:我的重点是在得到客户端的响应之后,我该怎么做,这样它就会打开一个下载提示“另存为链接”或只是将文件下载到本地系统中的默认位置?