Recibo este error cuando intento enviar una solicitud de publicación usando mi api localhost:
Access to fetch at 'http://127.0.0.1:8000/my-api/' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.aquí está mi código:
const SubmitContact = async (e)=>{ e.preventDefault() const contact = {contact_name,contact_email,contact_body} fetch("http://127.0.0.1:8000/my-api/",{ method: "POST", header: { "Accept": "application/json", "Content Type": "application/json", }, body: JSON.stringify(contact) }).then((result)=>{ console.warn(result) }) }¿Por qué no puedo enviar una solicitud de publicación donde estoy cometiendo un error? mi api también funciona en post man, así que creo que podría estar cometiendo algún error en mi código javascript.
Este es el tema CORS. El navegador no le permitirá solicitar otro dominio por defecto (razones de seguridad). Postman no tiene ese mecanismo y es por eso que puede solicitar su punto final API de Postman.
No sé qué idioma y biblioteca está utilizando para desarrollar su API, pero así es como debe hacerse con express.js https://expressjs.com/en/resources/middleware/cors.html . Puede habilitar todas las solicitudes de CORS en desarrollo (no debe usarse en producción) o puede configurar el origen en localhost.
let corsOptions = { origin: 'http://localhost:3000', }En producción, debe configurar el origen real.