Skip to content
Permalink
Browse files

Ensure that AJAX requests are actually aborted in all browsers. Fix #…

…7422.
  • Loading branch information...
csnover committed Nov 6, 2010
1 parent a4df694 commit e57b73a0ac6f8fd0cdbbe7d43f1c7e198f475337
Showing with 9 additions and 5 deletions.
  1. +5 −4 src/ajax.js
  2. +4 −1 test/unit/ajax.js
@@ -463,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" );
@@ -137,7 +137,7 @@ test(".load()) - 404 error callbacks", function() {
});

test("jQuery.ajax() - abort", function() {
expect( 6 );
expect( 8 );
stop();

jQuery('#foo').ajaxStart(function(){
@@ -157,7 +157,10 @@ test("jQuery.ajax() - abort", function() {
complete: function(){ ok(true, "complete"); }
});

equals( xhr.readyState, 1, "XHR readyState indicates successful dispatch" );

xhr.abort();
equals( xhr.readyState, 0, "XHR readyState indicates successful abortion" );
});

test("Ajax events with context", function() {

0 comments on commit e57b73a

Please sign in to comment.
You can’t perform that action at this time.