Tendo problemas para acessar as APIs do Discourse de um aplicativo React

O acesso a fetch em ‘https://boostfloral.discourse.group/categories.json?’ da origem ‘http://localhost:3000’ foi bloqueado pela política CORS: O campo de cabeçalho da solicitação API-key não é permitido por Access-Control-Allow-Headers na resposta preflight.

Estou recebendo o problema acima ao tentar chamar as APIs do Discourse. Já adicionei um certificado SSL aos meus servidores. Estou adicionando as opções CORS presentes no meu painel de administração, mas ainda estou recebendo este problema.

Alguém já enfrentou algo assim e poderia me ajudar a encontrar uma solução???

É uma chave de API de usuário? Se não me engano, deveria ser User-Api-Key.

Agora estou recebendo a resposta abaixo.

O acesso a fetch em ‘https://boostfloral.discourse.group/latest.json?order=default&ascending=false’ da origem ‘http://localhost:3000’ foi bloqueado pela política CORS: O campo de cabeçalho da solicitação api-username não é permitido por Access-Control-Allow-Headers na resposta preflight.

Se você estiver tentando consumir a API de Administrador (em oposição à API de Usuário), os campos de cabeçalho necessários são Api-Key e Api-Username.

Eu acho que para clientes Javascript públicos, a API de administrador não é permitida (infelizmente, isso complica tudo, eu sei!) Mas você terá que usar User API keys specification em vez disso.

Para mim, ainda estou tentando descobrir como também. Eu só quero obter uma resposta .json que esteja publicamente disponível.

Se for público, então configurar o CORS deve ser suficiente e você não precisará se preocupar com chaves de API.

2 curtidas

Sim, obrigado! Isso foi resolvido para mim aqui: Using JavaScript fetch to get publicly available page from Discourse into an external site (Discourse API) - #2 by pfaffman

@fahadaslam98 como @RGJ disse, se o CORS estiver configurado corretamente, remover as chaves da API dos cabeçalhos deve funcionar, :+1:

1 curtida