Выполнять 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 возвращает неопределенную ошибку, и возвращаемое поле объекта XMLHttpRequst имеет значение false.

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

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

16
задан james.garriss 18 June 2012 в 13:16
поделиться

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 .

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

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

11
ответ дан 30 November 2019 в 23:05
поделиться
Другие вопросы по тегам:

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