我有一个允许用户上传和下载文档的应用程序。在下载区域,用户可以选择多个文件(全部pdf),并执行合并并下载。正在取消/取消在IE中不工作的AJAX请求
太好了。
有是,在合并过程中会弹出一个模式窗口,显示合并的状态,用SignalR一个进度条。这适用于所有浏览器,并且发生下载。
问题:有一个取消合并和下载按钮上这种模式。它停止集线器的SignalR,并向AJAX呼叫发送abort()请求。这适用于Safari,Chrome和FF - 但不适用于IE。
当我看着Fiddler时,Chrome浏览器会停止服务器端的方法。在IE中,它试图将该请求发送给SignalR。 IE中的结果是模式窗口按预期消失,但几秒钟后,您会收到文件已下载的提示(实际处理从不停止)。请注意下面在Fiddler会话中调用中止的区别。
的Fiddler(铬 - 工作):
的Fiddler(IE - 不工作):
Ĵ avascript:
$('#cancelDownloadMerge').on('click', function() {
$.connection.hub.stop();
XX.Documents.DocumentsView.download.abort();
XX.Documents.DocumentsView.mergeCancelled = true;
XX.Documents.DocumentsView._isMerging = false;
});
的AJAX调用被当合并和下载最初点击是漫长的和专有然而,cache: false和crossDomain: true(因为当前正在运行的本地主机)解雇,被设定为这样的,但问题仍然仍然存在。我认为AJAX调用并不那么重要,因为这对IE来说非常孤立,但如果需要,我可以尝试发布更多内容。
我怀疑这个事做的事实,Chrome和FF使用ServerSentEvents而IE使用永远框架(不支持SSE)。
我被困在这一个,任何帮助非常感谢。
2015-06-10
ragerory
+0
IE所有版本??检查此** [文章](http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/)**和这个** [答案](http://stackoverflow.com/a/1394717/2065039)**和这个** [问题](http:// stackoverflow。com/questions/1287971/aborting-a-jquery-getjson-xmlhttprequest-updated)** –
+0
@GuruprasadRao - 是的,我见过那些。他们基本上说增加超时或禁用缓存,我已经尝试过。 IE11和IE10出错了,还没有尝试过任何更低的。 –