在尝试在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似乎没有设置此属性。
任何人都知道为什么会这样?