formData пуст (при загрузке через XMLHttpRequest - чистый JavaScript) - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно отправить вместе со своими переменными данные также файл BLOB-объекта, поэтому мне нужно было переключиться с простого POST

 http1.send("var1=" + var1 + "&var2=" + var2 + "")

на formData .

Но formData полностью пусто, даже когда я вывожу его на консоль.Вот мой код.

var formData = new FormData();
formData.append("customer_id", customer_id)
formData.append("nume", btoa(nume))
formData.append("prenume", btoa(prenume))
formData.append("signature", blob, "signature.jpg");
.....

var phpscript = 'AJAX/ajax_save_form.php'
http1.open('POST', phpscript)
http1.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http1.onreadystatechange = function()
{
    if(http1.readyState == 4)
    {
        if(http1.status == 200)
        {
            var ajaxMessage = http1.responseText    
            alert(ajaxMessage)

        } 
    }
}
http1.send(formData);

console.log(formData);

Вот несколько типичных значений для моих переменных:

customer_id = 4
nume = 'Bill'
prenume = 'Gates'
blob = .jpeg file

Может кто-нибудь отследить это для меня?Где я не прав?Я просмотрел в сети 20 различных решений и страниц, и ни одна не может решить мою проблему.

Спасибо !!!

1 Ответ

0 голосов
/ 27 ноября 2018

Объект FormData должен быть отправлен как multipart / form-data, тип контента установлен как application/x-www-form-urlencoded.
Удалите вызов на setRequestHeader, и будет установлен правильный тип контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...