Making an HTTP POST call with multipart/form-data using jQuery?
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 se开发者_如何学运维rver requires multipart.
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.
Using FormData(), you can upload files via ajax request.
Refer this link for more info: FormData
Tutorial about using FormData: tutorial
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 );
}
});
http://www.bennadel.com/blog/1273-Setting-Form-EncType-Dynamically-To-Multipart-Form-Data-In-IE-Internet-Explorer-.htm
精彩评论