Я пытаюсь сделать 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? И если это невозможно, есть ли простой способ добиться этого?
т.е. не нужно передавать файлы, просто некоторые данные. но сервер требует составной части.
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 формы, а также поддерживает загрузку файлов .