Estoy tratando de enviar datos de autenticación a un servidor de web api utilizando angular de $http. Cuando yo agregue la línea siguiente, el navegador se inicia el envío de solicitudes de comprobaciones

$http.defaults.headers.common.Authorization = 'Basic xxxxyyyyyy' ;

De la web de la api de lado, Cuando llego a una petición con el método de OPCIONES, proceso de la siguiente manera.

if (request.Method == HttpMethod.Options && request.Headers.Any(k => k.Key.Contains("Origin")))
            {
                var response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Headers.Add("Access-Control-Allow-Headers", "Content-Type,X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5,  Date, X-Api-Version, X-File-Name");
                response.Headers.Add("Access-Control-Allow-Origin", request.Headers.GetValues("Origin"));
                response.Headers.Add("Access-Control-Allow-Credentials", "true");
                response.Headers.Add("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
                var tsc = new TaskCompletionSource<HttpResponseMessage>();
                tsc.SetResult(response);
                return tsc.Task;  
            }

Pero la comprobación previa solicitud falla de control de acceso de verificación.

XMLHttpRequest no se puede cargar http://localhost:53024/api………….
Respuesta a la comprobación previa petición de no pasar el control de acceso de verificación: La
‘Access-Control-Allow-Origin’ encabezado contiene varios valores
http://localhost:9000, *’, pero sólo uno es permitido. Origen
http://localhost:9000‘ es, por tanto, no se permite el acceso.

¿Qué estoy haciendo mal?

InformationsquelleAutor yohannes07 | 2015-10-19

2 Comentarios

  1. 3

    «El Access-Control-Allow-Origin encabezado contener varios valores de error» solución está dada en este enlace. Por favor, darle una oportunidad.

    Espero que esto ayude!

    • Gracias, me ayudó
  2. 3

    Yo tenía el mismo problema y que fue causado por la web de configuración configuración:

    <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Cache-Control" />
            <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,OPTIONS" />
          </customHeaders>
     </httpProtocol>

    La eliminación de los Access-Control-Allow-Origin encabezado personalizado va a resolver este problema

Dejar respuesta

Please enter your comment!
Please enter your name here