HTML5 FormData возвращает null в запросе сервлета Java.getParameter()

мое представление-HTML 5. Я использую FormData для создания сообщения AJAX 2 для сервлета. Внутри сервлета я пытаюсь прочитать параметры запроса. Я не вижу никаких параметров. Однако консоль Google Chrome Dev показывает полезную нагрузку запроса. Как я могу получить то же самое в коде сервлета? Любая помощь будет оценена. Вот код.

JS-код

var xhr = new XMLHttpRequest();
var formData = new FormData();
formData.append('firstName', 'ABC');
formData.append('lastName', 'XYZ');

xhr.open("POST", targetLocation, true);
xhr.send(formData);

код сервлета (оба параметра возврата null)

out.println("Hello! "+ request.getParameter("firstName")+ " "+ request.getParameter("lastName")+ ", thanks for sending your feedback." );

Консоль Google Chrome

Content-Disposition: form-data; name="firstName"
XYZ
Content-Disposition: form-data; name="lastName"
ABC

1 ответов


в HTML5 FormData API отправляет multipart/form-data запрос. Первоначально он был разработан, чтобы иметь возможность загружать файлы ajax с новой версией 2 XMLHttpRequest. Загрузка файлов в предыдущей версии была невозможна.

на request.getParameter() по умолчанию признает подход.

var xhr = new XMLHttpRequest();
var data = "firstName=" + encodeURIComponent(firstName)
        + "&lastName=" + encodeURIComponent(lastName);
xhr.open("POST", targetLocation, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);

таким образом, вам не нужно @MultipartConfig на вашем сервлете больше.

Читайте также: