From 92995bbce9877673f2642addd22fdf08d47bd39e Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Fri, 4 Nov 2011 18:02:47 -0700 Subject: fix($http): default json transformation should not crash on angular template The way we determine whether it's json is lame anyway. We need to change that. We should probably check the content type header... --- src/service/http.js | 2 +- test/service/httpSpec.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/service/http.js b/src/service/http.js index 049dbd50..6efe7474 100644 --- a/src/service/http.js +++ b/src/service/http.js @@ -61,7 +61,7 @@ function transform(data, fns, param) { * @description */ function $HttpProvider() { - var JSON_START = /^\s*[\[\{]/, + var JSON_START = /^\s*(\[|\{[^\{])/, JSON_END = /[\}\]]\s*$/, PROTECTION_PREFIX = /^\)\]\}',?\n/; diff --git a/test/service/httpSpec.js b/test/service/httpSpec.js index 83a6e860..210020f4 100644 --- a/test/service/httpSpec.js +++ b/test/service/httpSpec.js @@ -758,6 +758,16 @@ describe('$http', function() { expect(callback).toHaveBeenCalledOnce(); expect(callback.mostRecentCall.args[0]).toEqual([1, 'abc', {foo:'bar'}]); }); + + + it('should not deserialize tpl beginning with ng expression', function() { + $httpBackend.expect('GET', '/url').respond('{{some}}'); + $http.get('/url').on('200', callback); + $httpBackend.flush(); + + expect(callback).toHaveBeenCalledOnce(); + expect(callback.mostRecentCall.args[0]).toEqual('{{some}}'); + }); }); -- cgit v1.2.3