gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:08:36 24 4
gpt4 key购买 nike

问题:

在我正在构建的网站上,我有两个持续挂起的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com