He configurado mi código de esta manera en mi backend express y tengo instalada la biblioteca cors.
Sin embargo, recibo este error:
El acceso para buscar en 'mybackend.com' desde el origen 'domain1.com' ha sido bloqueado por la política de CORS: no hay un encabezado 'Access-Control-Allow-Origin' en el recurso solicitado. Si una respuesta opaca satisface sus necesidades, establezca el modo de la solicitud en 'no-cors' para obtener el recurso con CORS deshabilitado.
¿Como puedo resolver esto?
Mi código backend y frontend son los siguientes respectivamente
const allowedDomains = [ 'domain 1', 'domain 2', ]; app.use(cors( { origin: function (origin, callback) { if (allowedDomains.indexOf(origin) != -1) { callback(null, true); } else { callback(new Error(`Access has been blocked `)); } }, credentials: true, } )); await fetch(`mybackend.com' ,{ method:'GET', headers: new Headers({ 'Content-Type':'application/json', 'Authorization':`Bearer ${token}`, }), body:null, })Según mi comprensión limitada de Fetch API y CORS, creo que debe agregar el mode: 'cors' , así como el encabezado Access-Control-Allow-Origin: '*' o Access-Control-Allow-Origin: 'mybackend.com' . Después de hacer eso, su bloque await fetch(...) se vería así.
fetch(URL, { mode: 'cors', method:'GET', headers: { 'Access-Control-Allow-Origin':'*', 'Content-Type':'application/json', 'Authorization':`Bearer ${token}`, }, body:null, }) .then(response => response.json()) .then(data => { ... });¡Espero que esto ayude!