如何在二进制数据响应xmlhttprequest上抛出异常

时间:2017-10-25 12:44:28

标签: javascript xmlhttprequest

我想使用xhr.responseType =' arraybuffer'来处理错误,这会返回二进制类型,因此我得到控制台错误:"只有当responseType为'时才会提供responseText #39;,'文档'或' moz-chunked-text'。"

var xhr = new XMLHttpRequest();
xhr.open('POST', 'URL', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
    if (this.status == 200) {
        var blob=new Blob([this.response], {type:"application/pdf"});
        var pdfurl = window.URL.createObjectURL(blob);
        window.open(pdfurl);
    } else {
        console.log(xhr.responseText);
    }
};
xhr.onerror = function(e) {
};
xhr.send();

服务器端异常抛出

} catch (ApplicationException ae) {
    log.error(Util.logarErro(ae));
    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    response.getWriter().append(ae.getMessage());
    throw ae;

服务器端返回response.getOutputStream()。write(byte [] file);用二进制文件。

0 个答案:

没有答案