diff --git a/packages/common/http/src/request.ts b/packages/common/http/src/request.ts index bb49113b0ad71..2a64439f85a7b 100644 --- a/packages/common/http/src/request.ts +++ b/packages/common/http/src/request.ts @@ -323,7 +323,7 @@ export class HttpRequest { return 'application/x-www-form-urlencoded;charset=UTF-8'; } // Arrays, objects, and numbers will be encoded as JSON. - if (typeof this.body === 'object' || typeof this.body === 'number' || + if (typeof this.body === 'object' || typeof this.body === 'number' || typeof this.body === 'boolean' || Array.isArray(this.body)) { return 'application/json'; } diff --git a/packages/common/http/test/request_spec.ts b/packages/common/http/test/request_spec.ts index 7519b47e00479..9a0d91f3cac29 100644 --- a/packages/common/http/test/request_spec.ts +++ b/packages/common/http/test/request_spec.ts @@ -129,6 +129,10 @@ const TEST_STRING = `I'm a body!`; const req = baseReq.clone({body: {data: 'test data'}}); expect(req.detectContentTypeHeader()).toBe('application/json'); }); + it('handles boolean as json', () => { + const req = baseReq.clone({body: true}); + expect(req.detectContentTypeHeader()).toBe('application/json'); + }); }); describe('body serialization', () => { const baseReq = new HttpRequest('POST', '/test', null);