@uzi_no_uzi

Почему не отправляются данные?

Пытаюсь отправить данные из формы с помощью 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()

5df274fd8ff5d782921113.png

В итоге запрос успешно отправляется с данными в таком виде:
5df275a74a853471554424.png

Но заголовок у запроса не тот, что я прописывал (
request.setRequestHeader('Content-Type', 'multipart/form-data; boundary=something');
)

5df275f8a626f939428450.png

И когда я проверяю в PHP файле, что у меня в $_POST, то получаю пустой массив:
5df2761b7a6a3470477321.png

В чем может быть проблема? Я думаю в заголовке, но не знаю какой прописывать
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы