Ensure that AJAX requests are actually aborted in all browsers. Fix #7422.
This commit is contained in:
parent
a4df6945b8
commit
e57b73a0ac
|
@ -463,10 +463,11 @@ jQuery.extend({
|
||||||
try {
|
try {
|
||||||
var oldAbort = xhr.abort;
|
var oldAbort = xhr.abort;
|
||||||
xhr.abort = function() {
|
xhr.abort = function() {
|
||||||
// xhr.abort in IE7 is not a native JS function
|
if ( xhr ) {
|
||||||
// and does not have a call property
|
// oldAbort has no call property in IE7 so
|
||||||
if ( xhr && oldAbort.call ) {
|
// just do it this way, which works in all
|
||||||
oldAbort.call( xhr );
|
// browsers
|
||||||
|
Function.prototype.call.call( oldAbort, xhr );
|
||||||
}
|
}
|
||||||
|
|
||||||
onreadystatechange( "abort" );
|
onreadystatechange( "abort" );
|
||||||
|
|
|
@ -137,7 +137,7 @@ test(".load()) - 404 error callbacks", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test("jQuery.ajax() - abort", function() {
|
test("jQuery.ajax() - abort", function() {
|
||||||
expect( 6 );
|
expect( 8 );
|
||||||
stop();
|
stop();
|
||||||
|
|
||||||
jQuery('#foo').ajaxStart(function(){
|
jQuery('#foo').ajaxStart(function(){
|
||||||
|
@ -157,7 +157,10 @@ test("jQuery.ajax() - abort", function() {
|
||||||
complete: function(){ ok(true, "complete"); }
|
complete: function(){ ok(true, "complete"); }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
equals( xhr.readyState, 1, "XHR readyState indicates successful dispatch" );
|
||||||
|
|
||||||
xhr.abort();
|
xhr.abort();
|
||||||
|
equals( xhr.readyState, 0, "XHR readyState indicates successful abortion" );
|
||||||
});
|
});
|
||||||
|
|
||||||
test("Ajax events with context", function() {
|
test("Ajax events with context", function() {
|
||||||
|
|
Loading…
Reference in a new issue