Me gustaría acceder a la API de Discourse con React.
Recibo el siguiente error:
localhost/:1 El acceso a XMLHttpRequest en 'https://community.oppkey.host/posts.json' desde el origen 'http://localhost:3000' ha sido bloqueado por la política de CORS: no hay presente el encabezado 'Access-Control-Allow-Origin' en el recurso solicitado.
Estas son mis configuraciones de origen CORS utilizando el panel de administración de Discourse.
En el servidor de Discourse, tengo lo siguiente en /var/discourse/containers/app.yml
Así es como estoy intentando obtener la API de 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("intentando obtener la API en " + apiEndPoint);
axios
.get(apiEndPoint)
.then((res) => {
const currentData = res.data;
updateData(currentData);
console.log("se obtuvo la API");
console.log(currentData);
})
.catch((err) => console.log(err));
}, []);
Si utilizo un servidor externo con datos falsos, el código de React funciona.
No entiendo cómo funcionan CORS y React en general, así que cualquier ayuda sería apreciada.
Tengo funcionando las cosas con un servidor proxy de API que escribí para retransmitir las llamadas a la API desde mi servidor de Discourse a otro servidor de REST API que estoy utilizando para conectar con React. Aunque esto funciona, es lento. Me gustaría enviar llamadas a la API directamente desde React a los puntos finales de la API de Discourse.




