dojo.io.iframe和下载Excel/PDF

Ari*_*iod 1 javascript io dojo

我想使用Dojo按钮下载Excel或PDF文件.到目前为止,我已经设法通过在按钮dojo.io.iframeonClick处理程序中使用调用来实现它.但是,这只会下载文件一次.任何连续的调用都将被忽略.

这是电话:

function exportToExcel() {
    dojo.io.iframe.send({
        url: '/report/export',
        handleAs: 'xml',
        content: {
            __export: 'excel'
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

好像dojo.io.iframe不考虑先前的请求完成.

我究竟做错了什么?

Ale*_*eng 7

如果您使用dojo.io.iframe.send,则响应应采用特定格式告知dojo请求已完成.响应应该包含在<textarea>HTML文档的元素中.在您的情况下,响应是二进制流,因此dojo不知道请求是否已完成.如果你没有指定a timeout,dojo将永远等待.

要完成任务,您可以使用以下方法:

var downloadPdfIframeName = "downloadPdfIframe"; 
var iframe = dojo.io.iframe.create(downloadPdfIframeName);
dojo.io.iframe.setSrc(iframe, url, true);
Run Code Online (Sandbox Code Playgroud)