aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/http.js4
-rw-r--r--test/ng/httpSpec.js14
2 files changed, 16 insertions, 2 deletions
diff --git a/src/ng/http.js b/src/ng/http.js
index ab4900de..443daf83 100644
--- a/src/ng/http.js
+++ b/src/ng/http.js
@@ -892,7 +892,7 @@ function $HttpProvider() {
if (cache) {
cachedResp = cache.get(url);
- if (cachedResp) {
+ if (isDefined(cachedResp)) {
if (cachedResp.then) {
// cached request has already been sent, but there is no response yet
cachedResp.then(removePendingReq, removePendingReq);
@@ -912,7 +912,7 @@ function $HttpProvider() {
}
// if we won't have the response in cache, send the request to the backend
- if (!cachedResp) {
+ if (isUndefined(cachedResp)) {
$httpBackend(config.method, url, reqData, done, reqHeaders, config.timeout,
config.withCredentials, config.responseType);
}
diff --git a/test/ng/httpSpec.js b/test/ng/httpSpec.js
index ec1cb7f1..d3653a67 100644
--- a/test/ng/httpSpec.js
+++ b/test/ng/httpSpec.js
@@ -1248,6 +1248,20 @@ describe('$http', function() {
});
+ it('should allow the cached value to be an empty string', function () {
+ cache.put('/abc', '');
+
+ callback.andCallFake(function (response, status, headers) {
+ expect(response).toBe('');
+ expect(status).toBe(200);
+ });
+
+ $http({method: 'GET', url: '/abc', cache: cache}).success(callback);
+ $rootScope.$digest();
+ expect(callback).toHaveBeenCalled();
+ });
+
+
it('should default to status code 200 and empty headers if cache contains a non-array element',
inject(function($rootScope) {
cache.put('/myurl', 'simple response');