Angular HttpCliente, request GET com headers, não funciona
01/12/2017
0
.append('accept', 'application/json')
.append('content-type', 'application/json')
.append('param1', 'valor1')
.append('param2', 'valor2');
return this.http.get<category[]>('https://api.skyhub.com.br/categories',{headers:head} )
.pipe(
tap(return=> { this.log(`fetched Categorias`) }),
catchError(this.handleError('getCategorias', []))
);
quando executo, vai sem os headers que passei
Inditec
Posts
29/12/2017
Kelvin Andrade
Qual a versão do Angular que está utilizando?
const head= new HttpHeaders() .append('accept', 'application/json') .append('content-type', 'application/json') .append('param1', 'valor1') .append('param2', 'valor2'); return this.http.get<category[]>('https://api.skyhub.com.br/categories',{headers:head} ) .pipe( tap(return=> { this.log(`fetched Categorias`) }), catchError(this.handleError('getCategorias', [])) );
Ali próximo ao "tap" me parece conter um erro, você está utilizando a palavra reservada "return" para o nome de um parâmetro da função
02/01/2018
Inditec
Angular CLI: 1.6.2 Node: 8.9.3 OS: win32 x64 Angular: 5.1.2 ... animations, common, compiler, compiler-cli, core, forms ... http, language-service, platform-browser ... platform-browser-dynamic, platform-server, router @angular/cli: 1.6.2 @angular-devkit/build-optimizer: 0.0.36 @angular-devkit/core: 0.0.22 @angular-devkit/schematics: 0.0.42 @ngtools/json-schema: 1.1.0 @ngtools/webpack: 1.9.2 @schematics/angular: 0.1.11 @schematics/schematics: 0.0.11 typescript: 2.6.2 webpack: 3.10.0
03/01/2018
Kelvin Andrade
import { HttpClient } from '@angular/common/http';
Faça um teste para ver se o header está sendo atribuído corretamente dando um console na linha abaixo.
const head= new HttpHeaders().append('param1', 'valor1') .append('param2', 'valor2'); let param = head.get('param1'); console.log(param);
Obs: Por padrão, a versão 5 espera que os dados sejam JSON, então não é necessário passar "content-type" e "accept" como parâmetro.
Importante mencionar também que o header é imutável, sempre que utilizar a função append, é retornado um novo header, ele não altera a variável head, mesmo se não utilizasse const para declarar;
let head= new HttpHeaders(); head.append('param1', 'valor1'); let param = head.get('param1'); console.log(param); // O resultado é vazio.
Clique aqui para fazer login e interagir na Comunidade :)