У меня есть свой плагин по отправке данных из формы на почту.
//Метод для создания строки запроса из объекта с параметрами
_createQuery(paramsObj, method) {
if(method === 'GET') {
let query = '';
for(let key in paramsObj) {
query += `${key}=${paramsObj[key]}&`;
}
return query.substring(0, query.length - 1);
} else {
let data = new FormData();
for(let key in paramsObj) {
console.log(key, paramsObj[key]);
data.append(key, paramsObj[key])
}
return data;
}
}
onSendForm(method = 'GET', url, async, paramsObj) {
const request = new XMLHttpRequest();
if(method === 'GET') {
url += '?' + this._createQuery(paramsObj, method);
request.open(method, url, async);
request.send();
}
if(method === 'POST') {
request.open(method, url, async);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send(this._createQuery(paramsObj, method));
}
}
Форма отправляется методом POST.
GET метод отлично отрабатывает и все отправляется на почту как нужно.
Но вот с POST методом проблема, он собирает данные посредством formData объекта.
В приватном методе моего плагина _createQuery формируется POST запрос
let data = new FormData();
for(let key in paramsObj) {
console.log(key, paramsObj[key]);
data.append(key, paramsObj[key])
}
return data;
Передаю верные данные (console.log(key, paramsObj[key]) выдает мне данные, что на скрине, т.е. в метод append передается все правильно.
Но когда я смотрю, какие данные все же отправились POST запросом, то вижу непонятно что.
Почему так происходит?