【问题标题】:URL.createObjectURL() not at all working in any browserURL.createObjectURL() 在任何浏览器中都不起作用
【发布时间】:2017-04-20 23:57:05
【问题描述】:

您好,我在尝试每种解决方案后都感到疲倦,但无法使其发挥作用。

我在 Angular 中的 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),它仅适用于 chrome,但 URL.createObject 根本不起作用。

收到消息 URL.createObjectURL() 不是函数()

谢谢

【问题讨论】:

    标签: javascript angularjs url


    【解决方案1】:

    存在一些与 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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2017-04-19
      • 2016-08-14
      • 1970-01-01
      • 2011-07-09
      相关资源
      最近更新 更多