From a117dd05f638a078c21dc57f19966f4ae81f98f0 Mon Sep 17 00:00:00 2001 From: Oleg Gaidarenko Date: Thu, 2 Apr 2015 11:55:57 +0300 Subject: [PATCH] Ajax: remove "onunload" event handler Remove hack for IE lost connections, update for it was released by Microsoft at November 12, 2013. See https://support.microsoft.com/en-us/kb/2905733 Ref trac-5280 Ref gh-2047 --- src/ajax/xhr.js | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/src/ajax/xhr.js b/src/ajax/xhr.js index c1aceaa4a..545bb26c9 100644 --- a/src/ajax/xhr.js +++ b/src/ajax/xhr.js @@ -10,9 +10,7 @@ jQuery.ajaxSettings.xhr = function() { } catch ( e ) {} }; -var xhrId = 0, - xhrCallbacks = {}, - xhrSuccessStatus = { +var xhrSuccessStatus = { // file protocol always yields status code 0, assume 200 0: 200, // Support: IE9 @@ -21,17 +19,6 @@ var xhrId = 0, }, xhrSupported = jQuery.ajaxSettings.xhr(); -// Support: IE9 -// Open requests must be manually aborted on unload (#5280) -// See https://support.microsoft.com/kb/2856746 for more info -if ( window.attachEvent ) { - window.attachEvent( "onunload", function() { - for ( var key in xhrCallbacks ) { - xhrCallbacks[ key ](); - } - }); -} - support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); support.ajax = xhrSupported = !!xhrSupported; @@ -43,8 +30,7 @@ jQuery.ajaxTransport(function( options ) { return { send: function( headers, complete ) { var i, - xhr = options.xhr(), - id = ++xhrId; + xhr = options.xhr(); xhr.open( options.type, @@ -84,7 +70,6 @@ jQuery.ajaxTransport(function( options ) { callback = function( type ) { return function() { if ( callback ) { - delete xhrCallbacks[ id ]; callback = xhr.onload = xhr.onerror = null; if ( type === "abort" ) { @@ -117,7 +102,7 @@ jQuery.ajaxTransport(function( options ) { xhr.onerror = callback("error"); // Create the abort callback - callback = xhrCallbacks[ id ] = callback("abort"); + callback = callback("abort"); try { // Do send the request (this may raise an exception) -- 2.39.5