Búsqueda de sitios web

javascript - Consumir un servicio web en IIS usando autenticación de Windows con TypeScript


Intento hacer una solicitud GET desde una aplicación Angular2 a un servicio web alojado en un servidor IIS en la red corporativa. Pasé gran parte del día leyendo sobre CORS y las solicitudes preliminares. Lo logré hasta el punto en que el servidor devuelve una respuesta 200 a la solicitud preliminar, pero cuando el cliente hace la segunda llamada para solicitar realmente el recurso, recibo 401 Unauthorized.

Hago la solicitud así:

let headers = new Headers({ 'withCredentials': true });
let options = new RequestOptions({ headers: headers });

    return this.http.get(url, options)
                    .map(this.extractData)
                    .catch(this.handleError);

La solicitud/respuesta de verificación previa

La siguiente solicitud/respuesta

No estaba seguro de si había configurado la seguridad correctamente en el servidor IIS, pero cuando intenté con una llamada simple usando jQuery/ajax no tuve problemas y obtuve los datos de vuelta usando (con withCredentials y crossDomain siendo clave):

   $.ajax({
        type: "GET",
        url: "http://xxx:8087/odata/Users",
    xhrFields: {
       withCredentials: true
    },
    crossDomain: true,
        success: function(msg) {
           ...
        },
        error: function(e){
           ...
        }
    });

Al mirar la imagen enlazada con la solicitud/respuesta hecha con TypeScript, ¿es algo obvio que estoy pasando por alto para que esto funcione?