javascript - Använd webbtjänst på IIS med Windows-autentisering med TypeScript
Jag försöker göra en GET-förfrågan från en Angular2-app till en webbservice som är värd på en IIS-server i företagsnätverket. Jag tillbringade en stor del av dagen med att läsa om CORS och preflight-förfrågningar. Jag fick det till den punkt där servern skickar tillbaka ett 200-svar på preflight-förfrågan, men när klienten gör det andra anropet för att faktiskt begära resursen får jag 401 Unauthorized.
Jag gör förfrågan på detta sätt:
let headers = new Headers({ 'withCredentials': true });
let options = new RequestOptions({ headers: headers });
return this.http.get(url, options)
.map(this.extractData)
.catch(this.handleError);
Förflygningsförfrågan/-svar
Följande begäran/svar
Jag var inte säker på om jag hade konfigurerat säkerheten korrekt på IIS-maskinen, men när jag testade med ett enkelt anrop med jQuery/ajax hade jag inga problem och fick tillbaka datan genom att använda (där withCredentials och crossDomain är avgörande):
$.ajax({
type: "GET",
url: "http://xxx:8087/odata/Users",
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: function(msg) {
...
},
error: function(e){
...
}
});
När jag tittar på den länkade bilden med förfrågan/svar gjord med TypeScript, är det något uppenbart jag missar för att få detta att fungera?