Hi
The following code works fine on V1 but not on V2.0.6.
Why is FormData always empty?
Thanks
HTML
form id=“imageForm” method=“POST” action=“javascript:void(0)” enctype=“multipart/form-data” onsubmit=“uploadimage(this)”>
input capture onchange="$(’#imageForm’).trigger(‘submit’)"
name="imageData"
id="imageData"
accept="image/gif, image/jpeg, image/jpg, image/png"
multiple
type=“file” style=“display: none;”>
/form>
JS
ajaxReturn = myApp.request({
url: hostPages + “/XYZ/uploadimage”,
method: “POST”,
data: formData,
mimeType: “multipart/form-data”,
contentType: false,
cache: false,
dataType: ‘application/json’,
processData: false,
error: function (data) {
printNotification({ message: ‘General error. Please try again later.’ })
},
success: function (data) {
…
}
Why you set contentType:false? It must be multipart/form-data and there is no mimeType parameter
I was just following some examples and it was working before.
When I remove the contentType: false I get this error on express:
PayloadTooLargeError: request entity too large
Try also to set processData: true, if this errors still occurs then it is more likely server side problem
That made the trick!
Just for further reference:
ajaxReturn = myApp.request({
url: hostPages,
method: “POST”,
data: formData,
cache: false,
dataType: ‘application/json’,
mimeType: ‘multipart/form-data’,
processData: true,
Thanks!
1 Like
Can i full the full code for this please. Am stuck on submitting both image/file and form data
Can You please put all the code. I am also in the same situation with the images
This is the code I have:
app.request({
url: 'http://domain.com/wordpress/wp-json/test_post/v1/post_media',
method: "POST",
data: formData,
cache: false,
dataType: "application/json",
mimeType: "multipart/form-data",
processData: true,
beforeSend: function ( xhr ) {
console.log( "BEFORE SEND" );
app.dialog.alert(JSON.stringify(xhr), "BEFORE SEND");
xhr.setRequestHeader( 'Authorization', 'Basic '+username+':'+password );
},
success: function( data ) {
app.dialog.alert(JSON.stringify(data), "SUCCESS");
console.log( "SUCCESS" );
console.log( data );
},
error: function( error ) {
console.log( "ERROR" );
app.dialog.alert(JSON.stringify(error), "ERROR");
console.log( error );
}
});
It alerts everything (BEFORE SEND and SUCCESS) but the content on SUCESS is {}
What am I missing…