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.




