如何在AngularJs中将reponseType设置为$ http的blob?

时间:2014-09-11 11:24:13

标签: angularjs

我需要在角度中将响应类型设置为'blob'。 如何在angularjs中为$ http设置响应类型? 下面提供了使用XMLHttpRequest设置responseType的示例代码。我需要用$ http替换XMLHttpRequest。

var oMyForm = new FormData();
oMyForm.append("js", content);
var oReq = new XMLHttpRequest({mozSystem: true});
oReq.open("POST", url, true);
oReq.responseType = "blob";
oReq.onload = function(xhr) {

};
oReq.onerror = function(xhr) {

};
oReq.send(oMyForm);

2 个答案:

答案 0 :(得分:14)

angular为此提供配置对象,请检查docs

  $http({
        url: "http://localhost:8080/example/teste",
        method: "POST",
        responseType: "blob"

    })

答案 1 :(得分:0)

这适用于IE,Chrome和FF。

function download(url) {
    if (navigator.msSaveBlob) {
        var ajax = new XMLHttpRequest();
        ajax.open("GET", url, true);
        ajax.responseType = 'blob';
        ajax.onload = function(e) {
            navigator.msSaveBlob(data, url.substr(url.lastIndexOf("/") + 1));
        };
    } else {
        $('#download-frame').remove();
        $('<iframe/>', {
            src: url,
            id: 'download-frame'
        }).hide().appendTo('body');
    }
}