diff --git a/lib/defaults.js b/lib/defaults.js index 2b2a1a7..2a9d563 100644 --- a/lib/defaults.js +++ b/lib/defaults.js @@ -41,7 +41,7 @@ var defaults = { return data; } if (utils.isArrayBufferView(data)) { - return data.buffer; + return data.slice().buffer; } if (utils.isURLSearchParams(data)) { setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); diff --git a/test/specs/defaults.spec.js b/test/specs/defaults.spec.js index c8ee72e..92fb6d8 100644 --- a/test/specs/defaults.spec.js +++ b/test/specs/defaults.spec.js @@ -24,6 +24,12 @@ describe('defaults', function () { expect(defaults.transformRequest[0]('foo=bar')).toEqual('foo=bar'); }); + it('should transform TypedArrays without including buffer pool', function () { + if (typeof Uint8Array === 'undefined') return this.skip(); + const buffered = new Uint8Array(256).subarray(10, 26); + expect(defaults.transformRequest[0](buffered).byteLength).toEqual(16); + }); + it('should transform response json', function () { var data = defaults.transformResponse[0]('{"foo":"bar"}');