Olá Pessoal , estou quebrando a cabeça para resolver um problema de CORS em uma aplicação em Angular.
No meu ambiente de desenvolvimento eu resolvi criando um proxy local no node.js , dessa forma enganando o browser.
Agora preciso publicar a minha aplicação no Apache Web Server como posso criar um proxy ?
Por exemplo preciso consumir um serviço em outro dominio: “http://xxxxxx:9608/BPAManagement/agent/list” qndo tento consumir recebo 405 not allowed
A ideia é: na minha aplicação os apontamento ficarão “http://localhost:8080/BPAManagement/agent/list” o Apache faz o direcionamento para: “http://xxxxxx:9608/BPAManagement/agent/list”
Pessoal, resolvi o problema criando um ProxyPass no Apache dessa forma “engano” browser para evitar o preflight
No httpd.conf:
# Proxy for BaseServer
<LocationMatch "/BPAManagement">
RewriteEngine On
ProxyPreserveHost On
ProxyPass "http://xxxxx:9608/BPAManagement"
</LocationMatch>
Explicando “/BPAManagement” é contexto da minha aplicação no backend toda requisição feita pelo browser passará no Apache e consequentemente no ProxyPass redirecionará para minha aplicação dessa forma evito o CORS
Outro ponto é alterar os apontamentos do backend na sua aplicação Angular onde deverá apontar para endereço do seu WebServer no meu caso o Apache
Se vc precisa encaminhar algum cabeçalho na requisição é interessante usar o HttpInterceptModule uma simples implementação : https://medium.com/@ryanchenkie_40935/angular-authentication-using-the-http-client-and-http-interceptors-2f9d1540eb8
1 curtida