2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-17 19:21:29 +03:00

Fixed isFormData predicate; (#4413)

Added support for automatic object serialization to FormData if `Content-Type` is `multipart/form-data`;
Added support for FormData to be overloaded using `config.env.FormData` option;
Added support for FormData in node.js environment through `form-data` package;
This commit is contained in:
Dmitriy Mozgovoy
2022-02-02 13:48:44 +02:00
committed by GitHub
parent cc86c6c49f
commit 73e3bdb883
6 changed files with 40 additions and 15 deletions
+11 -1
View File
@@ -3,6 +3,7 @@
var utils = require('./utils');
var normalizeHeaderName = require('./helpers/normalizeHeaderName');
var enhanceError = require('./core/enhanceError');
var toFormData = require('./helpers/toFormData');
var DEFAULT_CONTENT_TYPE = {
'Content-Type': 'application/x-www-form-urlencoded'
@@ -71,10 +72,17 @@ var defaults = {
setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
return data.toString();
}
if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {
var isObjectPayload = utils.isObject(data);
var contentType = headers && headers['Content-Type'];
if ( isObjectPayload && contentType === 'multipart/form-data' ) {
return toFormData(data, new (this.env && this.env.FormData || FormData));
} else if ( isObjectPayload || contentType === 'application/json' ) {
setContentTypeIfUnset(headers, 'application/json');
return stringifySafely(data);
}
return data;
}],
@@ -112,6 +120,8 @@ var defaults = {
maxContentLength: -1,
maxBodyLength: -1,
env: {},
validateStatus: function validateStatus(status) {
return status >= 200 && status < 300;
},