diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 10c1c09..2afa323 100644 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -20,6 +20,11 @@ module.exports = function httpAdapter(resolve, reject, config) { config.headers || {} ); + // Add Content-Length header if data exists + if (data) { + headers['Content-Length'] = data.length; + } + // Parse url var parsed = url.parse(config.url); var options = { diff --git a/lib/defaults.js b/lib/defaults.js index c1d7a67..f9a9d20 100644 --- a/lib/defaults.js +++ b/lib/defaults.js @@ -14,7 +14,7 @@ module.exports = { return utils.isObject(data) && !utils.isFile(data) && !utils.isBlob(data) ? - JSON.stringify(data) : null; + JSON.stringify(data) : data; }], transformResponse: [function (data) { diff --git a/test/unit/defaults.js b/test/unit/defaults.js new file mode 100644 index 0000000..017fb6d --- /dev/null +++ b/test/unit/defaults.js @@ -0,0 +1,32 @@ +var defaults = require('../../lib/defaults'); + +module.exports = { + testTransformRequestJson: function (test) { + var data = defaults.transformRequest[0]({foo: 'bar'}); + + test.equals(data, '{"foo":"bar"}'); + test.done(); + }, + + testTransformRequestString: function (test) { + var data = defaults.transformRequest[0]('foo=bar'); + + test.equals(data, 'foo=bar'); + test.done(); + }, + + testTransformResponseJson: function (test) { + var data = defaults.transformResponse[0]('{"foo":"bar"}'); + + test.equals(typeof data, 'object'); + test.equals(data.foo, 'bar'); + test.done(); + }, + + testTransformResponseString: function (test) { + var data = defaults.transformResponse[0]('foo=bar'); + + test.equals(data, 'foo=bar'); + test.done(); + } +}; \ No newline at end of file