jquery.ajax: improvement for #2688, added test

This commit is contained in:
Jörn Zaefferer 2008-04-22 22:07:17 +00:00
parent 32b1cb3a5c
commit e454e8305d
2 changed files with 23 additions and 5 deletions

View File

@ -291,11 +291,8 @@ jQuery.extend({
} catch(e){} } catch(e){}
// Allow custom headers/mimetypes // Allow custom headers/mimetypes
if ( s.beforeSend ) if ( s.beforeSend && s.beforeSend(xml, s) === false )
var beforeSendSuccess = s.beforeSend(xml, s); return false;
if( beforeSendSuccess === false )
return false;
if ( s.global ) if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]); jQuery.event.trigger("ajaxSend", [xml, s]);

View File

@ -136,6 +136,27 @@ test("$.ajax - beforeSend", function() {
}); });
}); });
test("$.ajax - beforeSend, cancel request (#2688)", function() {
expect(2);
var request = $.ajax({
url: url("data/name.html"),
beforeSend: function() {
ok( true, "beforeSend got called, canceling" );
return false;
},
success: function() {
ok( false, "request didn't get canceled" );
},
complete: function() {
ok( false, "request didn't get canceled" );
},
error: function() {
ok( false, "request didn't get canceled" );
}
});
ok( request === false, "canceled request must return false instead of XMLHttpRequest instance" );
});
var foobar; var foobar;
test("$.ajax - dataType html", function() { test("$.ajax - dataType html", function() {