2

試圖代碼JavaScrupt上傳庫我的IE 11IE 11的XMLHttpRequest,xhr.upload沒有設置在Webworker

有一個奇怪的問題結束了使用XMLHttpRequest 2,你可以上傳文件,並得到進展。但是,如果你想在webworker中這樣做,你將無法從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似乎沒有這個屬性集。

有人有一個想法,爲什麼發生這種情況?

+0

您是否完全使用此代碼?當你在webworker中使用它時,xhr是否被聲明在錯誤的範圍內?你能展示完整的(er)代碼,包括webworker嗎? – GolezTrol

+0

不好實施? – Kaiido

+0

是GolezTrol它是確切的代碼。我更新了我的文章,詳細介紹了我的實現。 –

回答

1

有人有一個想法,爲什麼發生這種情況?

這是因爲它是一個bug,在此期間已被修復。