es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La API de .NET devuelve una respuesta 404 a las solicitudes de preflight.

Quiero subir una API web .NET a un dominio y luego configurar el frontend para que se conecte a ella. El problema es que no puedo enviar solicitudes al dominio de la API debido a la política de mismo origen. Intenté usar CORS y permitir todos los orígenes, pero debido a que las credenciales se envían a través de las respuestas, tengo que especificar el dominio exacto que puede conectarse a la API.

Aquí está el código que utilicé en mi proyecto backend:

“`C#
app.UseCors(x => x
.WithOrigins("https://localhost:3000")
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());

<pre><code><br />Y obtengo este error en mi consola cuando intento iniciar sesión:

“`text
Access to fetch at ‘https://api.paykanpars.com/api/user/login’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: 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.

Esto funciona bien cuando ejecuto la API en localhost, pero cuando la ejecuto en mi host de producción, devuelve un estado 404 en respuesta a las solicitudes de preflight. El host de producción utiliza Plesk como su servidor web.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema de CORS al subir una API web .NET a un dominio y conectarse a ella desde el frontend, deberás permitir el dominio específico que puede conectarse a la API en el código del proyecto backend. Para hacer esto, modifica el código que utilizaste en tu proyecto backend para especificar el dominio que se conectará a la API, de la siguiente manera:

    app.UseCors(x => x
    .WithOrigins("http://localhost:3000")
    .AllowAnyMethod()
    .AllowAnyHeader()
    .AllowCredentials());

    Asegúrate de especificar el dominio exacto que se conectará a la API, ya que establecer AllowAnyOrigins() puede causar problemas al enviar credenciales a través de las respuestas.

    Si aún encuentras problemas de CORS al ejecutar la API en tu host de producción usando Plesk como servidor web, es posible que debas configurar la configuración de CORS directamente en Plesk. Consulta la documentación de Plesk o comunícate con su equipo de soporte para obtener orientación sobre cómo hacer esto.

Comments are closed.