问题:
在我正在构建的站点上,我有两个JQuery ajax长轮询调用一直在等待。我现在正在尝试加入一个文件下载功能,这样当按下链接时,用户就会被提示使用SaveAs框。该文件的下载工作正常,问题是当按下链接时,两个ajax调用被取消。
我正在尝试不取消ajax调用或立即设置ajax调用的可能性。
下面是链接的代码:
HTML:
<a href="/test" id="testfile">Tasks</a>联署材料:
$(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>发布于 2014-05-22 09:22:15
利用约阿夫马杜斯基的答案,问题得到了解决:
我添加了一个隐藏的iframe到网站的臀部,并以我的链接为目标。我还删除了JS代码,因为ajax调用现在没有被取消。
代码现在如下所示:
HTML:
<a href="/test" target="filetargetframe" id="testfile">Tasks</a>
********
<iframe name="filetargetframe" style="display:none"></iframe>https://stackoverflow.com/questions/19686416
复制相似问题