IE 11,XMLHttpRequest,xhr.upload没有在Webworker中设置

时间:2015-09-07 09:38:59

标签: javascript internet-explorer web-worker xmlhttprequest-level2

在尝试在JavaScrupt中编写上传库时,我在IE 11上遇到了一个奇怪的问题。

使用XMLHttpRequest 2,您可以上传文件并获得进度。但是,如果您正在尝试在网络工作者中这样做,那么您将无法从IE 11获得任何进展(我只尝试过此版本)。您将收到相同代码的错误。

这是一个例子:

worker.js

self.addEventListener("message", function(e) {

    var file = e.data;

    var xhr = new XMLHttpRequest();
    if (xhr.upload)
       xhr.upload.onprogress = function(event){
          // here we get the progression through event.loaded
    };

    xhr.open('POST', '/upload.php', true);
    xhr.send(file);

});

main.js

var uploadworker = new Worker('worker.js');
uploadworker.postMessage( file );

如果您直接使用此代码,它将适用于任何浏览器。如果您在webworker中使用它,它将无法在IE11中使用。事实上你会得到一个"无效的参数"在线:if (xhr.upload) 因为在Webworker中使用XMLHttpRequest时,IE11似乎没有设置此属性。

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

  

任何人都知道为什么会这样?

那是因为它是bug,在此期间已经修复。