【问题标题】:404 in downloading a file using <iframe> and AJAX使用 <iframe> 和 AJAX 下载文件时出现 404
【发布时间】:2015-02-10 12:13:16
【问题描述】:

我正在使用 iframe 通过 AJAX 请求从服务器下载 excel 文件。每次单击按钮时,服务器都会在大约半分钟内创建一个 excel 文件 并将 url 发送回客户端。我在 iframe"src" 属性中设置 url 的值

$("#ExportExcelFrame").attr('src', url);

即使文件存在并且可以从生成的 URL 访问,客户端也会抛出 404 错误。

每当我对文件名进行硬编码(使用一些预先存在的文件的文件名)以消除设置工作和下载 excel 文件的处理延迟时。

我尝试过更改ajax请求的超时时间无济于事

$.ajaxSetup({

    timeout: 120000 //Time in milliseconds

}); 

我们将不胜感激任何建议。

ajax 调用

 jQuery.ajax({
                type: 'GET',
                url: 'Controller',
                data: {type: param, StartDate: StartDate, EndDate: EndDate, DateType:dateType,ResEstmBean: JSON.stringify(ResourceEstmBean)},
                beforeSend: function () {
                    $.blockUI({message: message, css: messageCss});
                },
                success: function (data)
                {


                        var fileName = data;

                        var url = "http://localhost:8080/WebApp/" + fileName;


                        $("#ExportExcelFrame").attr('src', url);

                        $.unblockUI();
                },
                        timeout: 300000,
                        error: function () {
                        $.unblockUI();
                        showErrorAlert();
                }
            });

【问题讨论】:

  • 您是否将 iframe 的 src 设置为 AJAX 成功功能的一部分?
  • @sideroxylon : 是的。"ExportExcelFrame" 是 iframe 的 id。当我对 servlet 生成的文件名(url)进行硬编码以避免处理时间时,它工作正常。
  • 好的。看起来代码在收到 excel 文件的 URL 之前试图填充 iframe - 但如果您将 src 作为成功函数的一部分注入(在 AJAX 进程完成之后),那么就不是这样了。你能发布你的 AJAX 函数吗?
  • @sideroxylon:我已经添加了ajax调用代码
  • 当我在浏览器中检查 iframe 时,“src”属性填充了正确的 url 值。

标签: jquery ajax iframe


【解决方案1】:

我在 2 秒后设置了属性

setTimeout(function () {$("#ExportExcelFrame").attr('src', url)}, 2000);

它现在正在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-20
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2015-05-17
    相关资源
    最近更新 更多