Я хочу, чтобы показать PDF в новой вкладке после вызвавшего его, им с помощью JQuery 1.12.3 и Spring MVC 4.Показать PDF в новой вкладке не работаете с JQuery и Spring MVC
Когда я CLIC по моей ссылке, я генерировать pdf, а мой метод ajax показывает успех, но мой pdf не отображается на новой вкладке, что я забыл?
я уже follewed эти сообщения:
Open ResponseEntity PDF in new browser tab
Spring - display PDF-file in browser instead of downloading
Я пытался удалить ResponseBody аннотаций, но я тот же результат
Это мой код:
HTML:
<a id="3676274" class="bulletinLink" target="_blank" href="#">Bulletin du 2015-04-30</a>
JQuery:
$(".bulletinLink").click(function(e){
e.preventDefault();
var id = $(this).attr('id');
var oAjax;
var sUrl = sUrlBase + '/generatePdf/'+id;
oAjax = $.ajax({
url: sUrl,
type: 'GET',
cache: false,
data : '',
async : false
});
oAjax.done(function(transport) {
alert("success");
});
oAjax.fail(function(transport) {
alert("fail");
});
});
Java:
@RequestMapping(value = "/generatePdf/{id}", method = RequestMethod.GET)
@ResponseBody
public final ResponseEntity<byte[]> generateWithResponseBody(@PathVariable("id") final int idBulletin
,final HttpServletRequest httpRequete, final HttpServletResponse httpReponse) throws ApplicationException
{
...
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
String filename = "spring_tutorial.pdf";
headers.setContentDispositionFormData(filename, filename);
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(out.toByteArray(), headers, HttpStatus.OK);
return response;
}