使用jQuery AJAX发送带有二进制数据的FormData

Sending FormData with a binary data by using jQuery AJAX

本文关键字:二进制 数据 FormData jQuery AJAX 使用      更新时间:2023-09-26

我想通过使用jQuery AJAX发送一个FormData,如:

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!");
    }
});

但我也想通过使用jQuery AJAX发送二进制数据,如:

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

我如何将它们合并成一个数据并发送出去?

您可以将二进制数据附加到FormData对象作为Blob, File, ArrayBufferdata 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!");
  }
});