1

我正在尝试实现jquery.FileDownload插件,该插件允许使用 iframe 通常无法实现类似 Ajax 的文件下载体验。然而,我使用这个插件的事实并不是我的问题所必需的。这是关于代码中断点的一般问题。

既然如此,这是我的代码:

function generateReport(elementId, data, url) {
    var $container = $(elementId);
    $.fileDownload(url, {
        httpMethod: 'POST',
        data: data,
        successCallback: function (url) {
            $container.toggle('slow');
        },
        failCallback: function (responseHtml, url) {
            $container.find('.error-message').removeClass('hide');
        }
    });
    return false;
}

当 AJAX 调用成功时,successCallback被调用并且一切正常。当请求中发生故障时,failCallback将调用并且我无法访问 $container 中的任何元素。我收到“权限被拒绝”错误,这可能表明由于 iframe 导致的可访问性正在发生。

无论哪种情况,在调试这个问题时,我都会在我的浏览器调试器中放置一个断点就$.fileDownload()行了。当我在这条线上中断任何时间时,$container 及其所有包含的元素都可以访问,并且我没有收到“权限被拒绝”错误。url当我在与传递给该方法相对应的服务器端方法中中断任何时间时也是这种情况$.fileDownload

这让我觉得这个插件在 IE 中存在时间/线程问题。为了重新创建阻止错误在我的调试器中发生的延迟,我尝试分别在 javascript 和服务器端代码中使用setTimeout()Thread.Sleep(),但这仍然导致“权限被拒绝”错误。

与在代码中手动添加延迟相比,中断调试器有什么不同?

4

0 回答 0