Http 文件下载请求停止 JQuery ajax 调用
Http request for file download stops JQuery ajax calls
问题:
在我正在构建的站点上,我有两个 JQuery ajax 长轮询调用不断挂起。我现在正在尝试加入文件下载功能,以便在按下链接时提示用户使用SaveAs框。该文件的下载工作正常,问题是当按下链接时,两个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>
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 将curl查询转换为jQuery.ajax()
- jQuery AJAX write to XML
- jQuery Ajax GET请求工作不正常
- jquery ajax https调用给出ERR_INSECURE_RESPONSE
- VB NET JQUERY AJAX上出现错误500
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- Jquery/Ajax.serialize()未完全工作
- 页面加载之前的jQuery Ajax加载程序
- jquery/ajax无限滚动事件
- 使用Jquery$.ajax将json数据传递给servlet(doPost)
- 如何将给定的curl命令复制为jquery ajax请求
- 使用 JQUERY AJAX (Spring MVC) 从控制器中删除
- Twitter API在jQuery AJAX中设置授权头
- AngularJS JQuery Ajax表单提交等效
- jQuery Ajax.ajaxSuccess()事件未激发
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- jQuery AJAX总是出错
- jQuery Ajax数组序列化错误
- jQuery AJAX获取Vimeo缩略图