JAX-RS webservice从ajax调用服务excel文件,如何显示保存对话框

时间:2013-01-10 07:15:59

标签: jquery ajax jax-rs

我有一个JAX-RS web服务,它将excel文件创建为字节数组并将其返回给我的javascript应用程序, 该服务正常工作,因为我可以使用firebug检查响应,它包含我设置的标头和包含excel文件的字节。

但是我想通过设置content-disposition标题会有一个保存对话框,似乎没有。
下面我贴了我在回复中得到的标题,有什么我忘记了吗?

Content-Disposition attachment; filename=file.xls
Content-Length  17920
Content-Type    application/vnd.ms-excel
Date    Thu, 10 Jan 2013 07:07:49 GMT
Server  Apache-Coyote/1.1
X-Powered-By    Servlet 2.5; JBoss-5.0/JBossWeb-2.1

ajax调用当前没有成功函数,我是否需要编写某种函数来显示保存对话框,或者我是否足够设置其他标题,如果是这样的话?

感谢
学家

2 个答案:

答案 0 :(得分:0)

正如上面Musa所建议的那样,摆脱AJAX并将用户转发到返回Excel数据的URL,其中包含您现在使用的标题(它们是正确的)。

答案 1 :(得分:0)

这就是我修复它的方法:

我保留了ajax调用,因为我以指定的json格式向服务器端发送了大量参数和数据数组,但是我返回了一个base64encoded字符串,我将其添加到一个隐藏的表单中,该表单指向一个链接服务器端使用已解码的字符串设置响应中的标头,而不是最优雅的解决方案,但它可以实现技巧