Установить тип содержимого AJAX с простым JavaScript (без JQuery)

Я работаю над отправкой формы с помощью AJAX, но использую простой JavaScript, без внешних библиотек.

У меня возникла проблема, когда дело доходит до синтаксического анализа формы, поскольку PHP, похоже, неправильно анализирует данные.

Из некоторых исследований в интернете я видел, что люди устанавливают тип контента на «ложь». Проблема, однако, заключается в том, что они используют JQuery для этого, и я не уверен, как мне это сделать в простом JavaScript.

Я только отправляю файл, и мои PHP-процессы отлично загружены традиционным способом.
AJAX также, кажется, работает безупречно, и я не вижу ошибок в коде. Вот моя функция загрузки.

var fd = new FormData();
fd.append("upload-file", document.getElementById('upload-file').files[0]);

var xhr = new XMLHttpRequest();

/* I add some event listeners here for progress, load, error, and abort */

xhr.open("POST", "upload.php");
xhr.send(fd);

1

Решение

Чтобы установить тип контента, вам нужно изменить заголовок запроса.

Я не знаю, какой тип контента вы хотите установить, поэтому я по умолчанию выбрал json.

Вот как вы можете установить его:

var fd = new FormData();
fd.append("upload-file", document.getElementById('upload-file').files[0]);

var xhr = new XMLHttpRequest();

/* I add some event listeners here for progress, load, error, and abort */

xhr.open("POST", "upload.php");
xhr.setRequestHeader("Content-type","application/json");
xhr.send(fd);

РЕДАКТИРОВАТЬ: Настройка заголовков HTTP-запросов из MDN

2

Другие решения

Других решений пока нет …