0

Я полностью фиктивный в AngularJS и ценю вашу помощь здесь.Загрузить файл в IE9 не удается с помощью ng-file-upload + Spring MVC + OAuth2.0

Я пытаюсь реализовать страницу загрузки файла. Это очень просто, пользователь выбирает файл и нажимает кнопку загрузки, и его необходимо загрузить в фоновый код, который является веб-службой Spring MVC REST. Я пытаюсь использовать ng-file-upload.

Вот мой передний конец кода:

<form name="myForm"> 
    <input type="file" ngf-select ng-model="picFile" name="file 
     accept="application/pdf" ngf-max-size="2MB" required 
     ngf-model-invalid="errorFiles"> 
    <i ng-show="myForm.file.$error.required">*required</i><br> 
    <i ng-show="myForm.file.$error.maxSize">File too large 
    {{errorFiles[0].size/1000000|number:1}}MB: max 2M</i> 
<button ng-disabled="!myForm.$valid" ng-click="uploadFiles(picFile)">Submit</button> 

и контроллер:

$scope.uploadFiles = function(file, errFiles) { 
      console.log("Uploading files"); 
      $scope.f = file; 
      $scope.errFile = errFiles && errFiles[0]; 
      if (file) { 
       file.upload = Upload.upload({ 
        url: 'api/proposals/upload', 
        data: {file: file} 
       }); 

       file.upload.then(function (response) { 
        $timeout(function() { 
         file.result = response.data; 
        }); 
       }, function (response) { 
        if (response.status > 0) 
         $scope.errorMsg = response.status + ': ' + response.data; 
       }, function (evt) { 
        file.progress = Math.min(100, parseInt(100.0 * 
              evt.loaded/evt.total)); 
       }); 
      } 
     }; 

и мой фоновым:

@RequestMapping(value = "/proposals/upload",method = RequestMethod.POST) 
@Timed 
public ResponseEntity<TemporaryProposal> 
    uploadProposal(@RequestParam("file") MultipartFile agreementFile){ 

Ошибка I» m в консоли IE9 -

TypeError: Unable to get value of the property 'error': object is null or undefined 

и от обратного конца:

[DEBUG] com.iocs.portal.aop.logging.LoggingAspect - Enter: org.springframework.boot.actuate.audit.AuditEventRepository.add() with argument[s] = [AuditEvent [timestamp=Tue Mar 01 08:53:23 EST 2016, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={message=Access is denied, type=org.springframework.security.access.AccessDeniedException}]] 
[DEBUG] com.iocs.portal.aop.logging.LoggingAspect - Exit: org.springframework.boot.actuate.audit.AuditEventRepository.add() with result = null 
[DEBUG] com.iocs.portal.security.Http401UnauthorizedEntryPoint - Pre-authenticated entry point called. Rejecting access 
+0

Кажется, что ваш сервер отклоняет запрос и отправляет ошибку авторизации. Сначала сделайте это для хрома, тогда вы лучше знаете, что проблема в IE9 – danial

ответ

0

Я решил эту проблему путем отправки параметров аутентификации вместе с запросом от переднего конца. Поскольку я использовал аутентификацию Auth2, было нормально включить маркер в запрос.