2016-05-04 6 views
3

Anfügen von benutzerdefinierten Feldern an HTTP-Request-Header mithilfe von Request-Klasse in Angular2? Ich habe Beiträge gefunden, die ähnliche Probleme lösen, aber sie verwenden keine Request-Klasse.Anfügen von benutzerdefinierten Feldern an HTTP-Request-Header mithilfe der Request-Klasse

Mein Code ist der folgende.

let headers: Headers = new Headers(); 
headers.append('foo', 'bar'); 

let req: any = { 
    method : RequestMethod.Get, 
    url : '/test.json', 
    headers: headers, 
}; 

// this.http is Http instance variable. 
this.http.request(new Request(req)).map((res: any) => res.json()); 

Dies ist ein sehr einfacher Code. Aber wenn ich dies ausführte, konnte ich benutzerdefinierte Felder in HTTP-Anfrage-Header nicht finden, Entwickler-Tools von Google Chrome verwendend.

referenzierte: https://angular.io/docs/js/latest/api/http/index/Request-class.html


Es ist möglich, dieses Problem zu reproduzieren. Der folgende Code sollte XHR 400 Fehler bekommen, aber es ist kein Problem. Beachten Sie jedoch, dass der Anforderungsheader keine benutzerdefinierten Felder enthält.

http://plnkr.co/edit/arCFx69V9H1Cl0pJXBzO?p=preview

+0

Sorry, die Ursache liegt in der serverseitigen Verarbeitung. Ich habe schon gelöst. –

Antwort

6

Sie haben wahrscheinlich vergessen, die Headers Klasse zu importieren:

let headers: Headers = new Headers(); 
headers.append('foo', 'bar'); 

this.http.get('test.json', { headers }).map((res: any) => res.json()); 

Außerdem vergessen Sie nicht, auf die zurück abonnieren:

import {Http, Headers, ...} from 'angular2/http'; 

Sie auch den folgenden Code verwenden könnte beobachtbar, um die Anfrage auszuführen, da Observables faul sind:

let headers: Headers = new Headers(); 
headers.append('foo', 'bar'); 

this.http.get('test.json', { headers }) 
    .map((res: any) => res.json()) 
    .subscribe((data) => { 
    console.log(data); 
    }); 
+0

Danke. Natürlich habe ich es geschrieben und abgeschlossen, um TypeScript-Dateien fehlerfrei zu übertragen. Aber das funktioniert nicht .... –

+0

Abonnieren Sie die Anfrage beobachtbar? Ich habe meine Antwort aktualisiert. –

+0

Ja, ich habe es abonniert. Aber ich konnte nicht finden, benutzerdefinierte Felder anzuhängen, um Header in den Entwicklertools anzufordern. –

Verwandte Themen