Ensure that AJAX requests are actually aborted in all browsers. Fix #7422.
[jquery.git] / src / ajax.js
index b39bc8d..690bcb5 100644 (file)
@@ -208,12 +208,6 @@ jQuery.extend({
                        s.data = jQuery.param( s.data, s.traditional );
                }
 
-               // If the jsonpCallback has been set, we can assume that dataType is jsonp
-               // Ticket #5803
-               if ( s.jsonpCallback ) {
-                 s.dataType = "jsonp";
-               }
-
                // Handle JSONP Parameter Callbacks
                if ( s.dataType === "jsonp" ) {
                        if ( type === "GET" ) {
@@ -469,10 +463,11 @@ jQuery.extend({
                try {
                        var oldAbort = xhr.abort;
                        xhr.abort = function() {
-                               // xhr.abort in IE7 is not a native JS function
-                               // and does not have a call property
-                               if ( xhr && oldAbort.call ) {
-                                       oldAbort.call( xhr );
+                               if ( xhr ) {
+                                       // oldAbort has no call property in IE7 so
+                                       // just do it this way, which works in all
+                                       // browsers
+                                       Function.prototype.call.call( oldAbort, xhr );
                                }
 
                                onreadystatechange( "abort" );