文件上传期间Angularjs表单数据未在服务器端绑定

时间:2018-09-26 12:58:51

标签: angularjs

在试图将我的文件上传到服务器时,我收到了TypeError: $http(...).success is not a function(…)的错误消息

角度文件更改代码

 $scope.ChechFileValid = function (file) {
        debugger;
        var isValid = false;
        if ($scope.SelectedFileForUpload != null) {
            if ((file.type == 'image/png' || file.type == 'image/jpeg' || file.type == 'image/gif') && file.size <= (512 * 1024)) {
                $scope.FileInvalidMessage = "";
                isValid = true;
            }
            else {
                $scope.FileInvalidMessage = "Selected file is Invalid. (only file type png, jpeg and gif and 512 kb size allowed)";
            }
        }
        else {
            $scope.FileInvalidMessage = "Image required!";
        }
        $scope.IsFileValid = isValid;
    };

这是我的文件提交按钮代码

$scope.SaveFile = function () {
        $scope.IsFormSubmitted = true;
        $scope.Message = "";
        $scope.ChechFileValid($scope.SelectedFileForUpload);
        if ($scope.IsFormValid && $scope.IsFileValid) {
            FileUploadService.UploadFile($scope.SelectedFileForUpload, $scope.FileDescription).then(function (d) {
                alert(d.Message);
                ClearForm();
            }, function (e) {
                alert(e);
            });
        }
        else {
            $scope.Message = "All the fields are required.";
        }
    };

这是我的工厂代码

 fac.UploadFile = function (file, description) {
        var formData = new FormData();
        formData.append("file", file);        
        formData.append("description", description);

        var defer = $q.defer();
      return  $http({
          url: 'http://localhost:59838/Api/Home/Sales',
          data: JSON.stringify(formData),

          headers: { 'content-type': 'application/json' },
          transformRequest: angular.identity,
          method: 'POST',

        })
        .success(function (d) {
            defer.resolve(d);
        })

这里出现错误,原因是angular.js:15018可能未处理的拒绝:{“ data”:{“ Message”:“未找到与请求URI'http://localhost:59838/Api/Home/Sales'匹配的HTTP资源。”,“消息

1 个答案:

答案 0 :(得分:0)

您得到的是 $ http(...)。成功不是函数(...) 因为自那以后不推荐使用“ .success ”方法,请改用“ .then ”。有关以下链接Check Deprecation notice

的更多信息

对于第二个错误,可能是URI不正确的结果,也许您的路线使用了查询参数,例如:http://localhost:59838/Api/Home/Sales XXXX ,请查看完整错误以获取更多信息信息

  

ie :(未找到与请求URI匹配的HTTP资源...”   (参数 XXXX 是必填项)