/ / Angular2: ako získať vlastné hlavičky odpovedí (vydanie CORS) - uhlové hlavičky odpovedí

Angular2: ako získať vlastné hlavičky odpovedí (otázka CORS) - uhlové hlavičky odpovedí

Prečo z odpovede nemám prístup ku VŠETKÝM hlavičkám v Angular2?

Mám starú webovú službu, ktorú nemôžem zmeniť. Odosiela niektoré dôležité informácie späť klientovi v systéme Windows Záhlavia odpovedí, Nepýtaj sa ma, prečo.

tu zadajte popis obrázku

môj kód je tento:

      .subscribe((r: Response) => {
var customHeader = r.headers.get("Database-Deleted");
var allHeadersAsString = JSON.stringify(r.headers);

ale zdá sa, že odpoveď obsahuje iba niekoľko hlavičiek, nie všetky.

Môže mi niekto povedať, že je to zámerne a neexistuje spôsob, ako k nim získať prístup? (alebo ešte lepšie: povedzte mi, ako to dosiahnuť)

UPDATE

Vďaka najvyšším komentárom som to dokázal identifikovať ako problém CORS. Prijaté odpovede na ďalšie otázky mi nedali správny kľúč.

VĎAKA!

odpovede:

2 pre odpoveď č. 1

Je to naozaj Vydanie CORS, Ďakujem n00dl3 pre vás komentár!

Ak server, v tomto prípade C # WebAPI, umožňuje výslovne odhaliť vlastné hlavičky, potom mi Angular2 umožní prístup k nim.

Táto webová stránka mi pomohla: http://datawalke.com/c/webapi-owin-cors-and-custom-headers/

Riešenie

Na testovanie som bol schopný povoliť všetky pôvody a zoznam vlastných hlavičiek, ktoré potrebujem.

    var att = new EnableCorsAttribute("*", "*", "*");
att.ExposedHeaders.Add("Database-Deleted");
att.ExposedHeaders.Add("Database-AlreadyDeleted");
att.ExposedHeaders.Add("Database-DryRun");
att.ExposedHeaders.Add("Database-Inserted");
att.ExposedHeaders.Add("Database-Updated");
config.EnableCors(att);

0 pre odpoveď č. 2

V prípade, že váš back-end je ASP.net WebAPI Core, musíte postupovať nasledujúcim spôsobom

  public void ConfigureServices(IServiceCollection services)
{

services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader().WithExposedHeaders("X-Pagination");
}));