用于文件下载的Java Servlet:当从表单提交启动时工作,而不是从jQuery下载启动时
Java Servlet for file download: Works when started from form submit, not when started from jQuery download
我有一个用于文件下载的Java Servlet(取自本页上的示例(实现一个简单的文件下载Servlet),该Servlet一般工作,但不能通过查询启动。
设置工作如下:当单击按钮(输入类型为提交)时,将生成一个文件并将其存储在服务器上。响应被重定向到文件下载servlet,然后该servlet将生成的文件的内容流式传输到响应。除了通过jQuery post函数调用开始下载过程之外,这工作得非常好。
当查看请求时,我能找到的唯一区别是请求的接受头。这是/用于jQuery post和'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8'用于表单提交请求。
这可能是决定性的差异吗?如果是这样,我该如何设置接受什么?
这是js中post的函数调用:
$.post("path", {
action : "action",
ids: ids.toString()
}, null, "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
这是我设置content-disposition的部分:
resp.addHeader("content-disposition:",
"attachment; filename=name.csv");
浏览器处理XHR响应的方式与处理"正常" HTTP请求的方式不同。如果您的servlet正确地设置了"Content-disposition"标头,那么您就可以进行普通的表单发布了。
相关文章:
- 重新启动jquery脚本后,角度停止工作
- 为什么不't在iOS上启动按钮下拉工作
- 重新启动游戏jQuery功能不工作
- 服务器重新启动后javascript不工作
- AngularJS:指令没有启动或工作
- 脚本工作,但永远不要启动它
- 启动日期选择器beforeShowDay只有在第一次点击后才能工作
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- 我的代码在没有警报()的情况下无法正常工作;启动函数
- ionios应用程序卡在启动屏幕上-在模拟器中工作,而不是在iphone5s设备上
- 功能重新启动工作不正确
- AngularJS UI启动日期选择器工作不正常
- 定时器功能在多次停止和启动时无法正常工作
- 启动和停止计时器不工作
- 我如何使计时器启动&只有当onFocus为true时才能工作
- 触摸启动事件未在原来隐藏的按钮上工作
- JQuery背景颜色更改(.animate或.css)在重新启动后只能工作一次
- Alfresco:更改“启动工作流”;按钮的文本
- 错误通过JavaScript启动工作流
- Alfresco社区版-5.1.x如何使用Webscript(Java或JavaScript)启动工作流