Подтвердить что ты не робот

Выполнение вызова HTTP POST с помощью multipart/form-data с помощью jQuery?

Я пытаюсь выполнить HTTP POST-вызов с помощью multipart/form-data, используя jQuery:

$.ajax({
  url: 'http://localhost:8080/dcs/rest',
  type: 'POST',
  contentType:'multipart/form-data',
  data: 'dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true', 
  //dataType: "jsonP",
  success: function(jsonData) {alert('POST alert'); data=jsonData ; },
  error : function(XMLHttpRequest, textStatus, errorThrown) {
            console.log('An Ajax error was thrown.');
            console.log(XMLHttpRequest);
            console.log(textStatus);
            console.log(errorThrown);
          }
});

Это не работает. Firebug возвращает ошибку undefined, а для возвращаемого поля multipart объекта XMLHttpRequst установлено значение false.

Что я могу сделать, чтобы сделать эту работу с jQuery? И если это невозможно, есть ли простое достижение?

то есть. Не нужно передавать файлы, просто некоторые данные. но сервер требует multipart.

4b9b3361

Ответ 1

multipart/form-data не выглядит так:

dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true

Это application/x-www-form-urlencoded.

Здесь example, как выглядит запрос multipart/form-data. И связанный RFC 1867.

multipart/form-data нередко ассоциируется с загрузкой файлов. Если это ваш случай, вы можете взглянуть на плагин jquery form, который позволяет вам создавать формы ajaxify и поддерживает загрузку файлов.

Ответ 2

Используя FormData(), вы можете загружать файлы через запрос ajax.

Обратитесь к этой ссылке для получения дополнительной информации: FormData

Учебник об использовании FormData: tutorial