Reputation: 5373
I'm trying to make a HTTP POST call with multipart/form-data , using 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);
}
});
It doesn't work. Firebug returns an undefined error and the returned XMLHttpRequst
object multipart field is set to false.
What can i do to make this work with jQuery? And if it's not possible is there a simple to achieve this?
i.e. idon't need to transfer files , just some data. but the server requires multipart.
Upvotes: 17
Views: 57226
Reputation: 7
This way works:
$( "form#upload-form" )
.attr( "enctype", "multipart/form-data" )
.attr( "encoding", "multipart/form-data" );
$.ajax({
type: "POST",
contentType:attr( "enctype", "multipart/form-data" ),
url: "/adm/oferta_insert",
data: dados,
success: function( data ) {
alert( data );
}
});
Upvotes: -1
Reputation: 1280
Using FormData(), you can upload files via ajax request.
Refer this link for more info: FormData
Tutorial about using FormData: tutorial
Upvotes: 1
Reputation: 1039438
multipart/form-data
doesn't look at like this:
dcs.source=boss-web&query=data&dcs.algorithm=lingo&dcs.output.format=JSON&dcs.clusters.only=true
This is application/x-www-form-urlencoded
.
Here's an example of how multipart/form-data
request looks like. And the related RFC 1867.
multipart/form-data
is quite often associated with uploading files. If this is your case you could take a look at the jquery form plugin which allows you to ajaxify forms and supports file uploads as well.
Upvotes: 11