Configuração de política CORS com React

Gostaria de acessar a API do Discourse com React.

Estou recebendo o seguinte erro:

localhost/:1 Acesso ao XMLHttpRequest em 'https://community.oppkey.host/posts.json' a partir da origem 'http://localhost:3000' foi bloqueado pela política CORS: O cabeçalho 'Access-Control-Allow-Origin' não está presente no recurso solicitado.

Estas são minhas configurações de origem CORS usando o painel de administração do Discourse.

No servidor do Discourse, tenho o seguinte em /var/discourse/containers/app.yml

É assim que estou tentando obter a API do Discourse.

export const DiscoursePanel = () => {
    const [ allData, updateData ] = useState([]);
	
	useEffect(() => {
         const apiEndPoint = 'https://community.oppkey.host/posts.json';
         /* const apiEndPoint = 'https://jsonplaceholder.typicode.com/posts'; */
        console.log("tentando obter a API em " + apiEndPoint);
		axios
        .get(apiEndPoint)
		.then((res) => {
			const currentData = res.data;
            updateData(currentData);
            console.log("obtive a api");
            console.log(currentData);
		})
		.catch((err) => console.log(err));
    }, []);

Se eu usar um servidor externo com dados falsos, o código React funciona.

Não entendo como CORS e React funcionam em geral, então qualquer ajuda seria apreciada.

Tenho as coisas funcionando com um servidor proxy de API que escrevi para retransmitir as chamadas de API do meu servidor Discourse para outro servidor REST API que estou usando para conectar ao React. Embora isso funcione, é lento. Gostaria de enviar chamadas de API diretamente do React para os endpoints da API do Discourse.

image

Olá @codetricity

Desculpe por você não ter encontrado uma resposta para esta postagem. Estou usando o React fetch e passei por etapas semelhantes às que você mencionou acima, mas ainda está bloqueando “pela política CORS”.

Por favor, você encontrou uma solução para este problema ou um recurso que explique a solução. Obrigado!

Olá, não consigo me lembrar do que acabei fazendo. No entanto, acabei de verificar e o site React ainda está ativo, buscando dados do Discourse (em um servidor separado).

Como usar React com Discourse é comum, acho que outra pessoa poderá responder. Desculpe por não me lembrar da solução. Boa sorte.

Olá
Obrigado pela resposta rápida! :slight_smile:

Se você tiver um minuto e acesso ao mesmo código, poderia verificar se cabeçalhos adicionais foram adicionados? (sem as informações confidenciais em si…)

Diz acima do “No 'Access-Control-Allow-Origin' header is present” então acho que cabeçalhos adicionais deveriam ter sido adicionados?

Obrigado desde já! :smiley: