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