Testei seu código e não aparece aquele erro.
Será que estamos falando da mesma coisa?
Preparei um repositório no GitHub. Segue as instruções do README e me diz se tiver algum problema, tá bom?
Testei seu código e não aparece aquele erro.
Será que estamos falando da mesma coisa?
Preparei um repositório no GitHub. Segue as instruções do README e me diz se tiver algum problema, tá bom?
Testei, me retorna isso no console (No localhost:8001):
localhost/:1 Access to fetch at 'http://localhost:8003/destino.php' from origin 'http://localhost:8001' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
(índice):12
Uncaught (in promise) TypeError: Failed to fetch
at doRequest ((índice):12:9)
at (índice):21:7
doRequest @ (índice):12
(anônimo) @ (índice):21
Promise.then (assíncrono)
doRequest @ (índice):18
(anônimo) @ (índice):21
(índice):18
Warning: file_get_contents(http://localhost:8003/destino.php): Failed to open stream: Cannot assign requested address in /var/www/html/proxy.php on line 28
Warning: Undefined variable $http_response_header in /var/www/html/proxy.php on line 29
Warning: foreach() argument must be of type array|object, null given in /var/www/html/proxy.php on line 31
Está usando qual navegador?
Coloquei online em https://inteligenciaplena.com.br/teste/proxy.php e não me retornou mais esse erro, talvez seja a verão do php local! Mas como pode ver no console ainda tenho erros relacionados a Compartilhamento de Recursos de Origem Cruzada: https://inteligenciaplena.com.br/teste/proxy.php?url=https://joveminventor.com.br/
São referentes a recursos do site, como css e js... Como poderia resolvê-los? Talvez mudar o url para mandar para o proxy, isso seria viável?
Agora eu entendi aquele erro HTTP_ORIGIN ser indefinido. Realmente não estávamos falando da mesma coisa.
Veja bem, se vc está acessando do seu navegador o endereço https://inteligenciaplena.com.br/teste/proxy.php?url=https://joveminventor.com.br/
vc não está sujeito ao CORS e usar seu proxy é desnecessário.
Na verdade vc está criando um problema de CORS que antes não existia como vc mesmo notou naqueles erros relacionados com CSS, JS e etc...
Pensa comigo: Por que eu iria acessar https://inteligenciaplena.com.br/teste/proxy.php?url=https://joveminventor.com.br/
se eu posso acessar https://joveminventor.com.br/
diretamente?
O CORS ocorre quando eu tento acessar https://joveminventor.com.br/
a partir de um endereço não autorizado usando o fetch
, como eu fiz naquele exemplo do repositório. É nesta situação que seu proxy faz sentido.
Então eu imaginei que vc queria usar o fetch
para fazer uma requisição para alguma API que retornaria um JSON.
Claro que vc pode usar o fetch
para requisitar um arquivo HTML, mas aí vc vai ter que impelementar uma lógica para substituir a URL de todos os CSS, JS e qualquer outro arquivo que o HTML desejado esteja referenciando.
Veja novamente o meu repositório. Eu o atualizei com a lógica que lida com arquivos CSS. Mas é só um exemplo, pois está incompleto. Veja com atenção o README também porque eu modifiquei alguns comandos.
Entendi, bom exemplo! Muito obrigado pela direção.
Maravilha, então! Eu pretendo excluir aquele repositório de exemplo, vc ainda vai precisar dele?
Já salvei o código e estou avançando, pode apagar caso queira. Agradeço mais uma vez