我有一个锚从servlet和jsp中的服务器下载文件。
现在我遇到一个问题,在下载文件之前如果发生任何错误,它会重定向并在新页面上显示错误(这是我自定义的错误消息)。通过ajax调用,我们无法下载文件,因此这对我来说不是解决方案。
所有可用的解决方案是否会停止重定向到另一个页面并通过单击锚点在警报上显示错误消息?
答案 0 :(得分:3)
看一下这个JQuery插件jquery-file-download-plugin ,这是这个插件的demo 页面。它动态地向DOM插入iframe并产生与AJAX请求一样的外观。它可能对你有所帮助。但是在服务器端,你必须添加一个cookie,它将触发其成功和失败回调
在客户端使用
$.fileDownload(url,{
successCallback: function (url)
{
console.log("File Downloaded");
},
failCallback: function (html, url)
{
console.log("Error in File Download");
}
});
在服务器端,如果你使用java添加cookie这样
Cookie cookie = new Cookie("fileDownload", "true");
cookie.setPath("/");
response.addCookie(cookie);
如果失败
Cookie cookie = new Cookie("fileDownload", "false");
cookie.setPath("/");
response.addCookie(cookie);
修改强>
你必须在锚点击上实现javascript方法,你必须在其中添加上面的代码。上述男女同校是GET
请求。