Sí, sé lo que estás pensando, otra pregunta de CORS, pero esta vez estoy perplejo.
Entonces, para comenzar, el mensaje de error real:
XMLHttpRequest no puede cargar http: //localhost/Foo.API/token . El valor del encabezado 'Access-Control-Allow-Origin' en la respuesta no debe ser el comodín '*' cuando el modo de credenciales de la solicitud es 'incluir' . Por lo tanto, no se permite el acceso al origen ' http: // localhost: 5000 '. El modo de credenciales de las solicitudes iniciadas por XMLHttpRequest está controlado por el atributo withCredentials.
No estoy seguro de lo que significa que el modo de credenciales es 'incluir' .
Así que cuando realizo la solicitud de cartero, experimento ningún error de este tipo:
Pero cuando accedo a la misma solicitud a través de mi aplicación web angularjs, este error me desconcierta. Aquí está mi solicitud / respuesta de angualrjs. Como verá, la respuesta es OK 200
, pero sigo recibiendo el error CORS:
Solicitud y respuesta de Fiddler:
La siguiente imagen muestra la solicitud y la respuesta del front-end web a la API
Entonces, según todas las otras publicaciones que he leído en línea, parece que estoy haciendo lo correcto, por eso no puedo entender el error. Por último, aquí está el código que uso dentro de angualrjs (fábrica de inicio de sesión):
Implementación de CORS en API - Fines de referencia:
Método 1 utilizado:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
EnableCrossSiteRequests(config);
}
private static void EnableCrossSiteRequests(HttpConfiguration config)
{
var cors = new EnableCorsAttribute("*", "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(cors);
}
}
Método 2 utilizado:
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
ConfigureOAuth(app);
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
¡Muchas gracias de antemano!
*
, entonces, el lado del servidor está haciendo CORS mal, oh, y el cartero funciona porque no es una solicitud de origen cruzado