javascript - Käytä verkkopalvelua IIS:ssä käyttäen Windows-todennusta TypeScriptin avulla
Yritän tehdä GET-pyynnön Angular2-sovelluksesta web-palveluun, joka on isännöity IIS-laatikossa yritysverkossa. Käytin suuren osan päivästä lukien CORS:sta ja esipyynnöistä. Sain sen siihen pisteeseen, että palvelin palauttaa 200-vastauksen esipyynnölle, mutta kun asiakas tekee toisen kutsun itse resurssin pyytämiseksi, saan 401 Unauthorized.
Teen pyynnön näin:
let headers = new Headers({ 'withCredentials': true });
let options = new RequestOptions({ headers: headers });
return this.http.get(url, options)
.map(this.extractData)
.catch(this.handleError);
Esilennon pyyntö/vastaus
Seuraava pyyntö/vastaus
En ollut varma, olinko konfiguroinut tietoturvan oikein IIS-koneessa, mutta kun yritin yksinkertaisella kutsulla käyttäen jQuery/ajaxia, minulla ei ollut ongelmia ja sain datan takaisin (withCredentials- ja crossDomain-asetukset olivat avainasemassa):
$.ajax({
type: "GET",
url: "http://xxx:8087/odata/Users",
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: function(msg) {
...
},
error: function(e){
...
}
});
Katsomalla liitettyä kuvaa, jossa pyyntö/vastaus on tehty TypeScriptillä, onko jotain ilmeistä, mitä olen unohtanut saadakseni tämän toimimaan?