Пытаюсь отправить данные из формы с помощью
formData()
Вот так выглядит моя форма:
<form action="" enctype="multipart/form-data">
<input class="name" name='name' type="text" placeholder="Name">
<input class="phone" name='phone' type="text" placeholder="Phone">
<input class="mail" name='mail' type="text" placeholder="E-mail">
<textarea class="ms" name='message' placeholder="Message"></textarea>
<div class="checkbox-area">
<input class="input" class="rules" id='rules' type="checkbox" value='yes' />
<label for="rules">Я ознакомился с правилами пользования</label>
</div>
<div class="file-area">
<input class="file" name="file" type="file" id='file' multiple="true">
<label for="file">Загрузить файлы</label>
</div>
<button type="submit">Отправить</button>
</form>
Вот так происходит отправка (ключевой момент - установка заголовка.):
if (method === 'POST') {
request.open(method, url, async);
request.setRequestHeader('Content-Type', 'multipart/form-data; boundary=something');
request.send(this._createQuery(paramsObj, method));
}
//Так выглядит метод _createQuery для POST заспроса
//Он просто формирует сам запрос, а конкретно информацию, которую нужно отправить
//Проблем с этим методом нет, console.log(data.get(key)); - я проверял правильно ли там записаны значение
//И значения записаны правильно, это можно увидеть на скрине ниже
_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) {
data.append(key, paramsObj[key])
console.log(data.get(key));
}
return data;
}
}
Скриншот данных, которые находятся в
formData()
В итоге запрос успешно отправляется с данными в таком виде:
Но заголовок у запроса не тот, что я прописывал (
request.setRequestHeader('Content-Type', 'multipart/form-data; boundary=something');
)
И когда я проверяю в PHP файле, что у меня в $_POST, то получаю пустой массив:
В чем может быть проблема? Я думаю в заголовке, но не знаю какой прописывать