Recebendo pdf com jquery

Pessoal!
Tudo bem? Espero que sim.
estou trabalhando com web service restful.
tenho uma classe resource do tipo get que retorna uma arquivo PDF.
apenas digitando a url no navegador ele ja me retorna este arquivo.
porém quero fazer isso com ajax, usando o jquery
estou fzd da seguinte maneira.

$.ajax({
type: ‘get’,
url: "http://localhost:8080/Teste2/resources/generic/report?"+queryString,
dataType: “application/pdf”,
success: function(data, textStatus, jqXHR) {
console.log(textStatus, data);
},
error: function(data, textStatus, jqXHR) {
alert(data);
}
});

a variavel queryString é o parametro para impressão do relatorio.
creio que preciso tratar de alguma forma na resposta. Só acho estranho pq quando digito no navegador comum a url, ele me retorna o arquivo direto.
alguem sabe o que preciso fazer?

Qual objetivo final?

Se for para exibir o PDF na página:

<embed src="http://www.sistemaintegrado.com.br/si/webfiles/arquivos/sis_cursos_5922fd72e61e6.pdf" width="900" height="600" type='application/pdf'>

``

Se for acionado pelo usuário para download:

<a href="http://www.sistemaintegrado.com.br/si/webfiles/arquivos/sis_cursos_5922fd72e61e6.pdf" download>
Teste
</a>

Se for pelo programa pode tentar isso:

https://fiddle.jshell.net/tnbzrv5z/

O Objetivo final é exibir o pdf, porem, assim eu não consigo exigir autenticação, desta forma que indicou não consigo passar o token na requisição.

Realizando a requisição pelo ajax consigo definir o token que será validado no servidor, assim só é possível visualizar o pdf se estiver autenticado, não encontrei uma forma de realizar isto.

Então fiz assim, utilizei o object e carreguei o pdf nele, semelhante ao que você indicou com o , o usuário não ve o endereço da requisição do pdf, mas pode facilmente ver se monitorar as requisições do navegador.

Ainda procuro um meio de definir o token, e visualizar o pdf apenas se autenticado.
Enquanto não encontro utilizo o .

Se souber de uma forma e definir o token e visualizar o pdf como desejo, ficarei muito grato…

Obrigado pela atenção.

Como é um get, se o token é passado pela URL, basta concatenar como parametro na URL.

Sim, ja defini o token no header da requisição, o problema é quando quando realizo este tipo de requisição recebo uma string com o pdf, ele não é aberto pelo navegador automaticamente como se eu digitasse a requisição no url do navegador, tentei de diversas formas visualizar o pdf através deste retorno que recebo do servidor, fazendo encode, criando blob convertendo a string que recebo em pdf, o navegador até exibiu o pdf com o titulo e o número de paginas correto mas sem as folhas estavam em branco, sem valor nem um.

self.consultarManifesto = function() {
var config = {headers: {
‘Content-Type’ : ‘application/json’,
‘Authentication’: ‘Bearer ’ + localStorage.getItem(“token”)
}
};
return $http.get(’/pdf/1, config)
.then(function successCallback(response) {
$scope.pdf = response.data;
});
};
O problema não é como passar o token, é como visualizar o retorno do servidor em pdf, se realizo a requisição do modo como informei recebo uma string do pdf, ele não é visualizado automaticamente como se digitasse a url no navegador.

Exemplo:

HTML:

<a id="teste" download>Teste</a>

<embed id="teste2" width="900" height="600" type='application/pdf'>

JS:

var queryString = "?token=123";

var url = "http://www.sistemaintegrado.com.br/si/webfiles/arquivos/sis_cursos_5922fd72e61e6.pdf" + queryString;

document.getElementById("teste").href = url;

document.getElementById("teste2").src = url;

Olá Rafael!

Você já tentou configurar o Content-Type do header para application/pdf?

Pode ser que esteja retornando uma string porque foi definido como application/json.