从API使用jQuery下载文件

时间:2014-03-26 00:23:05

标签: javascript jquery html5 api download

我正在研究java应用程序的前端,我正在向我们的后端API请求下载报告(我相信)是在后端动态创建的,然后生成并压缩文件下载。

我将一些参数传递给API,以便为要生成的报告添加选项/过滤器。如果一切顺利,API开始下载(我可以直接在浏览器中点击API服务)。如果选定的选项过滤器发生错误,我会收到一条错误消息作为普通字符串。

所以我看到它,我需要验证所选过滤器是否一切正常,如果不是我捕获字符串并向用户显示消息,如果一切正常我开始下载。

我这样做是以一种相当虚拟的方式。首先,我对API执行AJAX请求,看看请求是否失败,如果是,我在警报中显示消息。如果成功,我会随后调用API(完全相同的URL)作为表单提交以启动文件下载。

现在我的问题是后端可能需要很长时间来生成文件和所有文件,并对同一个URL做两个请求,至少可以说是笨拙的。我想知道有一种方法让我看看我是否从API中获取错误,否则请使用相同的请求下载文件。有可能吗?

这是我目前正在做的事情的片段:

        //sUrl gets formed according to the selected options in a form
        ajaxConfig = {
            url         : sUrl,
            type        : 'GET',
            async       : true,
            cache       : false,
            success     : function(date) {


                jQuery('<form action="'+ sUrl+'" method="'+ ('get') +'">'+inputs+'</form>').appendTo('body').submit().remove();


            },
            error       : function(msg) {
                alert('error: ' + msg.responseText);

            }
        };

        $.ajax(ajaxConfig);

0 个答案:

没有答案