javascript - 文件下载的 Http 请求停止 JQuery ajax 调用

标签 javascript html ajax jquery

问题:

在我正在构建的网站上,我有两个持续挂起的 JQuery ajax 长轮询调用。 我现在正尝试添加文件下载功能,以便在按下链接时提示用户使用另存为框。此文件下载工作正常,问题是当按下链接时,两个 ajax 调用被取消。

我正在尝试不取消 ajax 调用或直接设置 ajax 调用的可能性。

链接代码如下:

HTML:

<a href="/test" id="testfile">Tasks</a>

JS:

$(document).on('click',"#testfile",function(event){
    event.preventDefault();
    var href=$(this).attr('href');
    window.location.href = href;
    updater();                               /* AJAX CALL #1 */
    notifier();                              /* AJAX CALL #2 */
});

我尝试过的:

我在上面的代码中尝试在开始下载后调用两个 ajax 调用。这是行不通的。如果我延迟一些以便在下载完成后启动调用,那么它就可以工作,但由于文件可能很大,因此需要花费未知的时间来接收,这当然是一个糟糕的解决方案。

我真的很困惑为什么要取消 ajax 调用?这是因为当我点击链接时页面正在卸载吗?

鉴于我只在一个具有一个线程的开发服务器上运行,我尝试在点击链接后立即设置的新 ajax 调用可能会失败,因为服务器正忙,可能是这种情况吗?


已解决:

我在网站的底部添加了一个隐藏的 iframe,并通过我的链接将其作为目标。我还删除了 JS 代码,因为现在不会取消 ajax 调用。

代码现在看起来像这样:

HTML:

<a href="/test" target="filetargetframe"  id="testfile">Tasks</a>

********

<iframe name="filetargetframe" style="display:none"></iframe>

最佳答案

使用 yoavmatchulsky 的答案,问题解决了:

我在网站的底部添加了一个隐藏的 iframe,并通过我的链接将其作为目标。我还删除了 JS 代码,因为现在不会取消 ajax 调用。

代码现在看起来像这样:

HTML:

<a href="/test" target="filetargetframe"  id="testfile">Tasks</a>

********

<iframe name="filetargetframe" style="display:none"></iframe>

关于javascript - 文件下载的 Http 请求停止 JQuery ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686416/

相关文章:

javascript - Angular 2如何为2级 child 实现双向绑定(bind)?

javascript - 重新加载表格而不刷新 Django 中的页面

javascript - 无法提交生成的表单

javascript - 使用 AJAX JSON 进行 jQuery 自动完成

javascript - 使标签的首字母大写

javascript - 如果可能的话,我应该为请求使用 angularjs $http 服务还是 jquery ajax?

html - Century Gothic 字体未在网页上显示

javascript - 使用 jspdf 将图像 url 转换为 pdf

html - <pre> 内容不收缩的 Flex 元素

javascript - 如何使用jquery选择器获取没有id的内部div