Angular.js上传Request.Content.IsMimeMultipartContent返回false

use*_*916 4 angularjs asp.net-web-api2

我正在尝试将文件和表格数据从Angularjs客户端上传到Web API。我在网上找到了一些参考代码,并以相同的方式实现。Web API方法中的第一行代码是if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); }

返回false并将失败返回给客户端。我不知道我做错了什么...

下面是我的Angularjs中的代码

 var _uploadNotes = function (notes, files) {
            var deferred = $q.defer();
            $http({
                method: 'POST',
                url: "api/issue/uploadNotes",
                headers: { 'Content-Type': false },
                transformRequest: function (data) {
                    var formData = new FormData();                    
                    formData.append("model", angular.toJson(data.model));
                    for (var i = 0; i < data.files.length; i++) {
                        formData.append("file" + i, data.files[i]);
                    }
                    return formData;
                },
                data: { model: notes, files: files }
            }).
            success(function (data, status, headers, config) {
                deferred.resolve();
            }).
            error(function (data, status, headers, config) {
                deferred.reject();
            });

            return deferred.promise;
        };
Run Code Online (Sandbox Code Playgroud)

Sat*_*ies 5

只需替换 headers: { 'Content-Type': false},headers: { 'Content-Type': undefined},

整个代码:

 var _uploadNotes = function (notes, files) {
            var deferred = $q.defer();
            $http({
                method: 'POST',
                url: "api/issue/uploadNotes",
                headers: { 'Content-Type': undefined},
                transformRequest: function (data) {
                    var formData = new FormData();                    
                    formData.append("model", angular.toJson(data.model));
                    for (var i = 0; i < data.files.length; i++) {
                        formData.append("file" + i, data.files[i]);
                    }
                    return formData;
                },
                data: { model: notes, files: files }
            }).
            success(function (data, status, headers, config) {
                deferred.resolve();
            }).
            error(function (data, status, headers, config) {
                deferred.reject();
            });

            return deferred.promise;
        };
Run Code Online (Sandbox Code Playgroud)