如何将 javascript blob 发布到 MVC WebApi

w2o*_*ves 6 javascript jquery asp.net-web-api

如何将 Javascript Blob 发布到 webapi2 控制器?

我的客户端代码如下所示

//Binary image is base64 encoded string

 var binaryImg = atob(photo);
            var length = binaryImg.length;
            var ab = new ArrayBuffer(length);
            var ua = new Uint8Array(ab);
            for (var i = 0; i < length; i++) {
                ua[i] = binaryImg.charCodeAt(i);
            }

            var blob = new Blob([ab], {
                type: "image/jpeg"
            });
Run Code Online (Sandbox Code Playgroud)

我的控制器代码看起来像这样

[System.Web.Http.Route("api/SaveImage")]
        [System.Web.Http.HttpPost]
        public string SaveImage([FromBody] Byte[] test)
        {
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)

这不起作用。有任何想法吗 ?

编辑:

我的帖子看起来像这样

 $.ajax({
                url: window.routeDictionary.incident.SaveImage,
                type: "POST",
                contentType: "application/json",
                dataType: "json",
                data: JSON.stringify(data),
                beforeSend: function (request) {
                    request.setRequestHeader("Authorization", "Basic " + authdata);
                }
            }).then(function (data, textStatus, jqXHR) {
                delete jqXHR.then; // treat xhr as a non-promise
            //    deferred.resolve(data);
            }, function (jqXHR, textStatus, errorThrown) {
                delete jqXHR.then; // treat xhr as a non-promise
                helperPlugins.removeWait();
              //  deferred.reject(new Error(jqXHR));
            });
Run Code Online (Sandbox Code Playgroud)

这里的“数据”是 Blob