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.
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?
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…
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.