mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix($httpBackend): cancelled JSONP requests will not print error in the console
When you cancel a JSONP request, angular deletes the callback for it. However the script still executes, and since the callback is now deleted and undefined, the script throws an exception visible in the console. The quick fix for this is not to delete the callback, but replace it with `angular.noop`. Closes #5615 Closes #5616
This commit is contained in:
parent
75345e3487
commit
95e1b2d612
2 changed files with 8 additions and 3 deletions
|
|
@ -54,7 +54,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
|
|||
} else {
|
||||
completeRequest(callback, status || -2);
|
||||
}
|
||||
delete callbacks[callbackId];
|
||||
callbacks[callbackId] = angular.noop;
|
||||
});
|
||||
} else {
|
||||
|
||||
|
|
|
|||
|
|
@ -330,7 +330,7 @@ describe('$httpBackend', function() {
|
|||
script.onload();
|
||||
}
|
||||
|
||||
expect(callbacks[callbackId]).toBeUndefined();
|
||||
expect(callbacks[callbackId]).toBe(angular.noop);
|
||||
expect(fakeDocument.body.removeChild).toHaveBeenCalledOnceWith(script);
|
||||
});
|
||||
|
||||
|
|
@ -397,7 +397,7 @@ describe('$httpBackend', function() {
|
|||
});
|
||||
|
||||
|
||||
it('should abort request on timeout', function() {
|
||||
it('should abort request on timeout and replace callback with noop', function() {
|
||||
callback.andCallFake(function(status, response) {
|
||||
expect(status).toBe(-1);
|
||||
});
|
||||
|
|
@ -406,9 +406,14 @@ describe('$httpBackend', function() {
|
|||
expect(fakeDocument.$$scripts.length).toBe(1);
|
||||
expect(fakeTimeout.delays[0]).toBe(2000);
|
||||
|
||||
var script = fakeDocument.$$scripts.shift(),
|
||||
callbackId = script.src.match(SCRIPT_URL)[2];
|
||||
|
||||
fakeTimeout.flush();
|
||||
expect(fakeDocument.$$scripts.length).toBe(0);
|
||||
expect(callback).toHaveBeenCalledOnce();
|
||||
|
||||
expect(callbacks[callbackId]).toBe(angular.noop);
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue