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...
This commit is contained in:
Vojta Jina 2011-11-04 18:02:47 -07:00 committed by Igor Minar
parent b9707d910e
commit 92995bbce9
2 changed files with 11 additions and 1 deletions

View file

@ -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/;

View file

@ -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}}');
});
});