Problema com CORS caso adicione cabeçalho
Pessoal, bom dia... estou com um problema, toda vez que eu coloco um Header na minha chamada eu recebo erro de CORS.
Fiz todo o código normalmente sem Headers, executei e recebi erro de CORS, então naturalmente no meu backend eu adicionei:
Refiz a chamada e TUDO PERFEITO, o Angular pegava a informação.
Então fiz todo o resto, porem como em um momento vou precisar enviar um Token, criei um Header:
Após isso voltou os erros de CORs, agora de outra forma:
Response to preflight request doesn''''t pass access control check: It does not have HTTP ok status.
Já tentei de tudo, se eu tiro o Header funciona, se eu coloco da problema.
Se enviar assim recebo erros:
Se enviar assim, a chamada funciona com perfeição:
Já tentei de tudo, o pior que eu já usava assim, somente agora estou tendo problemas com isso, já tentei muitas coisas, perdi 5 horas literalmente...
Meu front é Angular + Framework Ionic e meu backend é Codeigniter 4 PHP
Alguém sabe o que pode ser ? Vou precisar enviar Token.
Fiz todo o código normalmente sem Headers, executei e recebi erro de CORS, então naturalmente no meu backend eu adicionei:
$response = service(''''response'''');
$response->setHeader(''''Access-Control-Allow-Origin'''', ''''*'''');
$response->setHeader(''''Access-Control-Allow-Methods'''', ''''GET, PUT, POST'''');
$response->setHeader(''''Access-Control-Allow-Headers'''', ''''Content-Type, Origin, Access-Control-Allow-Headers, Authorization, X-Requested-With, Token, Accept'''');Refiz a chamada e TUDO PERFEITO, o Angular pegava a informação.
Então fiz todo o resto, porem como em um momento vou precisar enviar um Token, criei um Header:
const httpOptions = {
headers: new HttpHeaders({
''''Content-Type'''': ''''application/json'''',
''''Token'''': ''''ABC''''
})
};Após isso voltou os erros de CORs, agora de outra forma:
Response to preflight request doesn''''t pass access control check: It does not have HTTP ok status.
Já tentei de tudo, se eu tiro o Header funciona, se eu coloco da problema.
Se enviar assim recebo erros:
getProducts(): Observable<Products[]>{
return this.httpClient.get<Products[]>(this.url + ''''products'''', httpOptions)
.pipe(
retry(3),
catchError(this.handleError))
}Se enviar assim, a chamada funciona com perfeição:
getProducts(): Observable<Products[]>{
return this.httpClient.get<Products[]>(this.url + ''''products'''', httpOptions)
.pipe(
retry(3),
catchError(this.handleError))
}Já tentei de tudo, o pior que eu já usava assim, somente agora estou tendo problemas com isso, já tentei muitas coisas, perdi 5 horas literalmente...
Meu front é Angular + Framework Ionic e meu backend é Codeigniter 4 PHP
Alguém sabe o que pode ser ? Vou precisar enviar Token.
Rodrigo Ventura
Curtidas 0
Respostas
Rodrigo Ventura
12/02/2022
Pessoal...parece que resolveu.
Por algum motivo só funcionou após forçar o header no backend de outra forma, sem ser a nativa do Codeigniter 4, dessa forma:
Obrigado e abraço.
Por algum motivo só funcionou após forçar o header no backend de outra forma, sem ser a nativa do Codeigniter 4, dessa forma:
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Token");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
if($_SERVER['REQUEST_METHOD'] === 'OPTIONS'){
exit();
}Obrigado e abraço.
GOSTEI 0