2016-12-06 24 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(ブロブ)を試みたが、それが唯一のクロムのために正常に動作していますが、URL.createObjectです全く働いていない。メッセージ URL.createObjectURLを()取得

()関数ではありません

おかげ

答えて

0

createObjectURLに関連するいくつかの互換性の問題があります、あなたはもっとここで見ることができます。https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

そしてBlobと: https://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

おかげでリカルドを、まだ動作していません。 –

関連する問題