AngularJS:无法使用jQuery Form Plugin在IE9中上传文件

时间:2013-09-09 20:03:32

标签: javascript jquery internet-explorer angularjs

我正在创建一个自定义指令,通过iframe将文件上传到我的服务器。该指令使用jQuery Form Plugin(https://github.com/malsup/form)并直接应用于<input type="file">元素:

angular.module('myModule').directive('myUpload', function() {

  replace: false,
  restrict: 'A',
  link: function (scope, element, attrs) {

    url = attrs.url

    // Wrap my file input element in a form 
    // that will be submitted when user selects a file.  
    element.wrap('<form method="POST"></form>');

    // Save reference to the form
    form = element.closest('form');

    // Bind to change event of the file input field
    element.bind('change', function() {
      form.ajaxSubmit({
        url: '/my-endpoint',
        iframe: true,
        type: 'POST',
        error: function() { ... },
        success: function() { ... }
      });
    });
  }

});

我的HTML看起来像:

<form name="parentForm"> <!-- This is not the form submitted by ajaxSubmit -->
  <input type="text" name="someUnrelatedInput">
  <input type="text" name="anotherUnrelatedInput">
  <input type="file" name="myFile" my-upload>
</form>

现在,在除IE之外的所有浏览器中,此代码按预期工作。在IE 8 + 9中,发送了POST请求,但它不包含用户选择的文件。

有谁知道为什么会这样,以及如何解决这个问题?

0 个答案:

没有答案