javascript – 通过Spring MVC使用ajax()POST请求下载文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 通过Spring MVC使用ajax()POST请求下载文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1828字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 通过Spring MVC使用ajax()POST请求下载文件](/upload/InfoBanner/zyjiaocheng/709/7cf642a42ac741c089f857ac918476af.jpg)
我尝试下载文件.该操作由ajax()发布请求触发.请求以json格式将数据发送到控制器.控制器生成文件(字节)并将其发回.
java脚本:
function getLicenseFile() {
$.ajax({
type: 'POST',
url: '<%=request.getContextPath()%>/licenses/rest/downloadLicenseFile',
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
data: ko.mapping.toJSON(licenseModel),
success: function (data) {
console.log("in sucess")
},
error:function (xhr, ajaxOptions, thrownError){
console.log("in error")
}
});
}
控制器:
@RequestMapping(value = "/licenses/rest/downloadLicenseFile", method = RequestMethod.POST)
@ResponseStatus(value=HttpStatus.OK)
@ResponseBody
public void createLicenseFile(@Valid @RequestBody License license, HttpServletResponse response) throws Exception {
logger.debug("Contoller License in: "+ license);
byte[] licensedata = licenseEncodeDefaultService.createLicenseFile(license);
logger.debug("licenseData: " + new String(licensedata));
response.setHeader("Content-Disposition", "attachment; filename=\"" + license.getCustomer() + ".license\"");
response.getOutputStream().write(licensedata);
response.flushBuffer();
}
问题:
*浏览器应该打开一个下载框,但它不会发生
*响应在错误:ajax函数部分处理(但http状态正常)
那么我错了什么或者这样做的正确方法是什么?
解决方法:
只需发送一个文件的URL作为响应,然后在成功回调中“访问”它.
function getLicenseFile() {
$.ajax({
type: 'POST',
url: '<%=request.getContextPath()%>/licenses/rest/downloadLicenseFile',
dataType: 'json',
contentType: 'application/json;charset=UTF-8',
data: ko.mapping.toJSON(licenseModel),
success: function (data) {
window.open(data.fileUrl);
// or window.location.href = data.fileUrl;
},
error:function (xhr, ajaxOptions, thrownError) {
console.log("in error");
}
});
}
应该由服务器设置data.fileUrl以说明客户端从何处获取文件.
所以你的服务器会发送一个像JSON一样的响应
{
"fileUrl": "http://mysite.com/files/0123456789"
}
内容总结
以上是互联网集市为您收集整理的javascript – 通过Spring MVC使用ajax()POST请求下载文件全部内容,希望文章能够帮你解决javascript – 通过Spring MVC使用ajax()POST请求下载文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。