Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在firefox中的选项卡中显示pdf内容_Javascript_Spring_Firefox - Fatal编程技术网

Javascript 在firefox中的选项卡中显示pdf内容

Javascript 在firefox中的选项卡中显示pdf内容,javascript,spring,firefox,Javascript,Spring,Firefox,我使用SpringBoot、jquery和itext 当用户单击按钮时,将生成一个pdf文件 @GetMapping(value = "/members/{memberId}/contract/{contractId}/generalcontracts", produces = "application/pdf") public ResponseEntity<byte[]> getMemberContract(@PathVariable("memberId") Long member

我使用SpringBoot、jquery和itext

当用户单击按钮时,将生成一个pdf文件

@GetMapping(value = "/members/{memberId}/contract/{contractId}/generalcontracts", produces = "application/pdf")
public ResponseEntity<byte[]> getMemberContract(@PathVariable("memberId") Long memberId, @PathVariable("contractId") Long contractId) throws IOException {
    byte[] content = reportService.generateMemberContractReport(contractId);
    return prepareReport(content);
}

private ResponseEntity<byte[]> prepareReport(byte[] content) throws IOException {
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.parseMediaType("application/pdf"));
    String filename = "report.pdf";
    headers.setContentDispositionFormData(filename, filename);
    headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
    ResponseEntity<byte[]> response = new ResponseEntity<>(content, headers, HttpStatus.OK);
    return response;
}
@GetMapping(value=“/members/{memberId}/contract/{contract}/generalcontracts”,products=“application/pdf”)
public ResponseEntity getMemberContract(@PathVariable(“memberId”)Long memberId,@PathVariable(“contractId”)Long contractId)引发IOException异常{
字节[]内容=reportService.generateMemberContractReport(CompactId);
返回准备报告(内容);
}
private ResponseEntity prepareReport(字节[]内容)引发IOException{
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.parseMediaType(“application/pdf”);
String filename=“report.pdf”;
headers.setContentDispositionFormData(文件名、文件名);
headers.setCacheControl(“必须重新验证,后检查=0,前检查=0”);
ResponseEntity response=新的ResponseEntity(内容、标题、HttpStatus.OK);
返回响应;
}
将打开一个选项卡并显示文件

该代码适用于chrome,但不适用于firefox。 使用firefox,就像打开和关闭标签一样

<button id="memberPrintReport" type="button"  class="btn btn-primary">Imprimer</button>

$("#memberPrintReport").on('click', function (e) {


 tryit(getHostName() + "/members/" + memberId + "/contract/" + contractId + "/generalcontracts");
}    

function tryit(urlServer) {
    var win = window.open('_blank');
    downloadFile(urlServer, function (blob) {
        var url = URL.createObjectURL(blob);
        win.location = url;
    });
}

function downloadFile(url, success) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.setRequestHeader("Authorization", "Basic " + $.cookie('authorization'));
    xhr.responseType = "blob";
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (success)
                success(xhr.response);
        }
    };
    xhr.send(null);
}

function tryit(urlServer) {
  downloadFile(urlServer, function (blob) {
    var url = URL.createObjectURL(blob);
     window.open(url, '_blank');

  });
}
impimer
$(“#memberPrintReport”)。在('单击',函数(e){
tryit(getHostName()+“/members/”+memberId+“/contract/“+contract+”/generalcontracts”);
}    
函数tryit(urlServer){
var win=窗口打开(“空白”);
下载文件(urlServer,函数(blob){
var url=url.createObjectURL(blob);
win.location=url;
});
}
函数下载文件(url,成功){
var xhr=new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.setRequestHeader(“授权”、“基本”+$.cookie(“授权”);
xhr.responseType=“blob”;
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
如果(成功)
成功(xhr.response);
}
};
xhr.send(空);
}
函数tryit(urlServer){
下载文件(urlServer,函数(blob){
var url=url.createObjectURL(blob);
打开(url,“U空白”);
});
}

尝试更新此行

headers.setContentDispositionFormData(filename, filename);
对此

headers.setContentDispositionFormData("inline", filename);
如果这不起作用,请尝试以下方法:

headers.add("content-disposition", "inline;filename=" + filename)