Banana Code Banana Code - 3 months ago 15
Javascript Question

Sending FormData with a binary data by using jQuery AJAX

I'd want to send a

FormData
by using jQuery AJAX, like:

var uploadFormData = new FormData();
uploadFormData.append("name","value");

$.ajax({
url : "(URL_target)",
type : "POST",
data : uploadFormData,
cache : false,
contentType : false,
processData : false,
success : function(r) {
alert("Success!");
}
});


But I also want to send a binary data by using jQuery AJAX, like:

var data = (...);

$.ajax({
url: "(URL_target)",
type: "POST",
data : data,
cache : false,
contentType: "application/octet-stream",
processData: false,
success : function(r) {
alert("Success!");
}
});


How can I combine them into one data and send it out?

Answer

You can append binary data to FormData object as a Blob, File, ArrayBuffer object, or data URI

var uploadFormData = new FormData();
var data = (...);
uploadFormData.append("name","value");
uploadFormData.append("data", new Blob([data], {type:"application/octet-stream"}));

$.ajax({
  url : "(URL_target)",
  type : "POST",
  data : uploadFormData,
  cache : false,
  contentType : false,
  processData : false,
  success : function(r) {
    alert("Success!");
  }
});