在IE 11中,FormData是未定义的错误

时间:2016-12-30 05:52:21

标签: jquery angularjs

我正在尝试在角度Js中使用上传控件。该功能在chrome中运行良好,但在IE 11中不起作用。 以下是使用的代码:

      <div>
 <input type="file" class="form-control" id="imageUploadfile" name="Imagefile" ng-files="getTheFiles($files)" accept="image/*" />
<input type="button" name="imageUploadButton" ng-click="uploadFiles()" value="Upload" />
</div>

在controller.js文件中,

  var formdata;
$scope.getTheFiles = function ($files) {
    formdata = new FormData();
    angular.forEach($files, function (value, key) {
        formdata.append(key, value);
    });
};


$scope.uploadFiles = function () {
    TestAPIService.postUploadImage(formdata).success(function (response) {
        var imageurl = _TestBaseUrl + 'Images/' + response.filePath.split(/(\\|\/)/g).pop();
        $scope.testTypeImage_url = imageurl;
    }).error(function (response) {
        alert(response.responseText);
    });
};

以上代码在chrome中工作正常,我可以上传文件。错误在formdata中,因为“key,value”没有被添加。

如何解决这个问题? 感谢

2 个答案:

答案 0 :(得分:1)

这对我有用,

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

使用'IE = edge',它将指示IE使用可用的最新文档模式。建议在您的网页中使用此元标记,该标记特别涉及JQuery / Ajax实现。

答案 1 :(得分:0)

IE11不完全支持

FormData,因此您可能需要对其进行填充。 IE all other methods are unsupported仅支持constructorappend方法。

您可以在此处找到一个polyfill:https://github.com/jimmywarting/FormData