Tengo un .NET Core WebAPI simple sin autenticación. Agregué Cors con la política predeterminada. No tengo problemas para conectarme y obtener datos de mi sitio web React o Postman (todo se ejecuta localmente en mi máquina). Ahora estoy tratando de obtener datos de esa API en una aplicación de node súper simple y recibo este error:
file:///Users/aw/Projects/TestNodeApp/node_modules/node-fetch/src/index.js:94 reject(new FetchError(`request to ${request.url} failed, reason: ${error.message}`, 'system', error)); ^ FetchError: request to https://localhost:5001/api/teams failed, reason: self signed certificate at ClientRequest.<anonymous> (file:///Users/aw/Projects/TestNodeApp/node_modules/node-fetch/src/index.js:94:11) at ClientRequest.emit (node:events:394:28) at TLSSocket.socketErrorListener (node:_http_client:447:9) at TLSSocket.emit (node:events:394:28) at emitErrorNT (node:internal/streams/destroy:157:8) at emitErrorCloseNT (node:internal/streams/destroy:122:3) at processTicksAndRejections (node:internal/process/task_queues:83:21) { type: 'system', errno: 'DEPTH_ZERO_SELF_SIGNED_CERT', code: 'DEPTH_ZERO_SELF_SIGNED_CERT', erroredSysCall: undefined } Esta es mi aplicación de node completo:
import fetch from 'node-fetch'; async function fetchTeams() { const response = await fetch('https://localhost:5001/api/teams', { method: 'GET' }); const data = await response.json(); return data; } (async () => { console.log('Process started'); const teams = await fetchTeams(); console.log(teams); })().finally(() => { console.log('Process finished'); });¿Qué significa? ¿Qué me estoy perdiendo?
Por cierto. Funciona bien, cuando busco la API de Github, así:
async function fetchGithub() { const response = await fetch('https://api.github.com/users/Microsoft'); const data = await response.json(); return data; }Así que supongo que falta algo en la API. Algo que mi sitio web React no necesita, necesita esa aplicación de nodo.
¡Gracias por la ayuda!
Intente confiar en el certificado autofirmado con dotnet dev-certs
dotnet dev-certs https --trustPara obtener más detalles, visite esta página de documentación .