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?