Properly Create and Serve PDF Blob via HTML5 File and URL APIs

后端 未结 3 1637
我寻月下人不归
我寻月下人不归 2020-12-02 23:44

Ok, Let\'s say I have document data stored somewhere, let\'s arbitrarily take this pdf.

Issue #1. What I want to do is make an AJAX call to this URL (because I need

3条回答
  •  一向
    一向 (楼主)
    2020-12-03 00:08

    jQuery.ajax does not currently support blobs, see this bug report #7248 which is closed as wontfix.

    However it's easy to do XHR for blobs without jQuery:

    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://www.grida.no/climate/ipcc_tar/wg1/pdf/tar-01.pdf', true);
    xhr.responseType = 'blob';
    
    xhr.onload = function(e) {
      if (this.status == 200) {
        // Note: .response instead of .responseText
        var blob = new Blob([this.response], {type: 'application/pdf'}),
            url = URL.createObjectURL(blob),
            _iFrame = document.createElement('iframe');
    
        _iFrame.setAttribute('src', url);
        _iFrame.setAttribute('style', 'visibility:hidden;');
        $('#someDiv').append(_iFrame)        
      }
    };
    
    xhr.send();
    

    Shamelessly copied from HTML5rocks.

    If jQuery did support the Blob type, it could be as simple as:

    $.ajax({
      url:'http://www.grida.no/climate/ipcc_tar/wg1/pdf/tar-01.pdf',
      dataType:'blob'
    })...
    

提交回复
热议问题