Internet Explorer 9和角度文件上载无法正常工作

时间:2015-06-18 18:07:20

标签: angularjs internet-explorer-9 angular-file-upload

我尝试使用角度上传文件,除IE9外,它的效果非常好。

我尝试了https://github.com/danialfarid/ng-file-upload但在使用非HTML5浏览器时需要使用Flash,所以它对我不起作用。

之后我尝试https://github.com/nervgh/angular-file-upload并且有效!除了上传文件后我做了一些处理,并可能通过错误请求返回错误。这在IE9中不起作用。如果上传成功,我的代码就看不到错误的请求。

好吧,我真的不认为问题是我的代码,所以我不会在这里发布任何内容。 我想要的是一个有同样问题的人,让我知道该怎么做。

编辑:换句话说。在Chrome中,状态为400,IE9为200。

uploader.onCompleteItem = function (fileItem, response, status, headers)

EDIT2:我想我找到了错误的来源。这是一个角度文件上传功能

iframe.bind('load', function() {
   try {
   // Fix for legacy IE browsers that loads internal error page
   // when failed WS response received. In consequence iframe
   // content access denied error is thrown becouse trying to
   // access cross domain page. When such thing occurs notifying
   // with empty response object. See more info at:
   // http://stackoverflow.com/questions/151362/access-is-denied-error-on-accessing-iframe-document-object
   // Note that if non standard 4xx or 5xx error code returned
   // from WS then response content can be accessed without error
   // but 'XHR' status becomes 200. In order to avoid confusion
   // returning response via same 'success' event handler.

   // fixed angular.contents() for iframes
        var html = iframe[0].contentDocument.body.innerHTML;
     } catch (e) {}

         var xhr = {response: html, status: 200, dummy: true};
         var headers = {};
         var response = that._transformResponse(xhr.response, headers);

         that._onSuccessItem(item, response, xhr.status, headers);
         that._onCompleteItem(item, response, xhr.status, headers);

但我的回答总是未定义

1 个答案:

答案 0 :(得分:0)

我找到了解决办法。在我的项目中,如果服务器返回错误,它只会进入catch语句。所以我在事件上触发了错误。