From 4f57236614415eea919221ea5f99c4d8689b3267 Mon Sep 17 00:00:00 2001 From: Tobias Bosch Date: Thu, 2 Jan 2014 14:37:48 -0800 Subject: fix($httpBackend): Ignore multiple calls to onreadystatechange with readyState=4 On mobile webkit `onreadystatechange` might by called multiple times with `readyState===4` caused by xhrs that are resolved while the app is in the background. Fixes #5426. --- src/ng/httpBackend.js | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/ng/httpBackend.js b/src/ng/httpBackend.js index 0a0e1f71..0bfe2fc3 100644 --- a/src/ng/httpBackend.js +++ b/src/ng/httpBackend.js @@ -70,6 +70,11 @@ function createHttpBackend($browser, XHR, $browserDefer, callbacks, rawDocument) // always async xhr.onreadystatechange = function() { if (xhr.readyState == 4) { + // onreadystatechange might by called multiple times + // with readyState === 4 on mobile webkit caused by + // xhrs that are resolved while the app is in the background (see #5426). + xhr.onreadystatechange = undefined; + var responseHeaders = null, response = null; -- cgit v1.2.3