2016-12-06 682 views
0

您好,我試過每種解決方案後都很累,但無法使其工作。URL.createObjectURL()根本不能在任何瀏覽器中工作

在我的角度HTTP調用

$http({ 
    method: 'GET', 
    url: API_URL + 'v1/file/' + candidateId + '/download', 
    headers: { 
    'authToken': AuthService.getToken(), 
    }, 
    responseType: 'arraybuffer' 
}) 
.then(function onSuccess(response) { 
    successCallback(response); 
}, 
function onError(response) { 
    errorCallback(response); 
}); 

,並在此代碼

vm.onSuccessDownloadResume = function(response) { 
    var blob = new Blob([response.data], {type: response.headers('content-type')}); 
    var objectUrl = URL.createObjectURL(blob); 
    window.open(objectUrl); 
}; 

我試圖webkitURL.createObjectURL(BLOB)的成功,它的做工精細鍍鉻只不過URL.createObject是根本不工作。

獲取消息 URL.createObjectURL()不是()函數

感謝

回答

0

有相關createObjectURL一些兼容性問題,你可以看到更多在這裏:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

而且隨着Blobhttps://developer.mozilla.org/en-US/docs/Web/API/BlobBuilder#Browser_compatibility

我有一個類似的問題,這個SO鏈接幫我解決了一個問題:Blob constructor browser compatibility

我抄這個功能,做出了一些細微的變化:

var NewBlob = function(data, datatype) 
{ 
    var out; 

    try { 
     out = new Blob([data], {type: datatype}); 
     console.debug("case 1"); 
    } 
    catch (e) { 
     window.BlobBuilder = window.BlobBuilder || 
       window.WebKitBlobBuilder || 
       window.MozBlobBuilder || 
       window.MSBlobBuilder; 

     if (e.name == 'TypeError' && window.BlobBuilder) { 
      var bb = new BlobBuilder(); 
      bb.append(data); 
      out = bb.getBlob(datatype); 
      console.debug("case 2"); 
     } 
     else if (e.name == "InvalidStateError") { 
      // InvalidStateError (tested on FF13 WinXP) 
      out = new Blob([data], {type: datatype}); 
      console.debug("case 3"); 
     } 
     else { 
      // We're screwed, blob constructor unsupported entirely 
      console.debug("Errore"); 
     } 
    } 
    return out; 
} 
+0

感謝里卡多,但仍然沒有工作。 –

相關問題