Javascript 将二进制文件作为应用程序/八位字节流从ajax发送到ashx文件

Javascript 将二进制文件作为应用程序/八位字节流从ajax发送到ashx文件,javascript,c#,jquery,ajax,ashx,Javascript,C#,Jquery,Ajax,Ashx,我需要用ajax将一个二进制文件发送到.ashx文件(c#.net环境)。 当我发送它时,“请求负载”必须是内容类型:“应用程序/八位字节流”,这是服务器端的要求。我的问题是,当我运行脚本时,它以普通类型而不是“应用程序/八位字节流”发送文件。如果文件是jpg,那么它会将其作为内容类型发送:“image/jpeg”,这对我不好。我想用二进制格式发送文件 现在我得到的是: var formData = new FormData(); formData.append('file',file); $

我需要用ajax将一个二进制文件发送到.ashx文件(c#.net环境)。 当我发送它时,“请求负载”必须是内容类型:“应用程序/八位字节流”,这是服务器端的要求。我的问题是,当我运行脚本时,它以普通类型而不是“应用程序/八位字节流”发送文件。如果文件是jpg,那么它会将其作为内容类型发送:“image/jpeg”,这对我不好。我想用二进制格式发送文件

现在我得到的是:

var formData = new FormData();
formData.append('file',file);

$.ajax({
  url: gatewayUrl,
  type: "POST",
  data: formData,
  processData: false,
  contentType: false,
  success: function(data){},
  error: function(){}
}); 
我读过关于FileReader和File.getAsBinary()的书,但没有一本适合我。我正在与ArrayBuffer搏斗,我不确定我是否在正确的方向上

这是我考虑的方向,但我不知道这是否是正确的方法:

function get_file_binary(file){
  var fileReader = new FileReader();
  fileReader.readAsArrayBuffer(file);
  fileReader.onload = function(e){
    var res = fileReader.result;
    var res2 = new Int8Array(res);
    return res2;
  }
}
但当我尝试这一点时,我在chrome上的“请求有效负载”中得到了“未定义”