2016-06-07 14 views
1

Ich habe etwas diesbezüglich gefunden, aber die meisten Beispiele und Erläuterungen sind veraltet und es gilt nicht für RC1.Angular 2 - http erhalten mitCredentials

import {Injectable} from "@angular/core"; 
import {Http, HTTP_PROVIDERS, Response, RequestOptions, URLSearchParams} from "@angular/http"; 
import 'rxjs/add/operator/map'; 
@Injectable() 
export class AuthService { 
constructor(private _http: Http) {} 
GetLoggedUser(){ 
    return this._http.get('http://dev/api/v1/current-user') 
    .map((res:Response) => res.json()) 
} 
} 

Ich brauche diesen Anruf zu machen genau wie dieser Legacy-Code:

$(document).ready(function() { 
        jQuery.ajax({ 
         type: 'GET', 
         url: 'http://dev/api/v1/current-user', 
         xhrFields: { 
          withCredentials: true 
         }, 
        }).done(function(data) { 
         $('#user').html(JSON.stringify(data)); 
        }); 
       }); 

Also, im Grunde muss ich den Anruf mit withCredentials machen. Irgendeine Hilfe ?

Antwort

0

Mit RC1 Sie die BrowserXhr Klasse erweitern müssen:

@Injectable() 
export class CustomBrowserXhr extends BrowserXhr { 
    constructor() {} 
    build(): any { 
    let xhr = super.build(); 
    xhr.withCredentials = true; 
    return <any>(xhr); 
    } 
} 

und überschreiben Sie die BrowserXhr Anbieter mit dem erweiterten:

bootstrap(AppComponent, [ 
    HTTP_PROVIDERS, 
    provide(BrowserXhr, { useClass: CustomBrowserXhr }) 
]); 

Mit der bevorstehenden RC2, werden Sie in der Lage sein, ein zu verwenden, withCredentials Attribut in den Anforderungsoptionen.

diese Links für mehr Details:

+0

RC2? Gibt es eine RC2? gut zu wissen !!! lass mich zuerst versuchen, die RC1 zu benutzen, die du geschrieben hast ... BRB –

+0

Die kommende RC2 ;-) Sie ist noch nicht erschienen ... –

+0

Oh, ok! Übrigens: Der Block, der die "@injective, Export-Klasse CustomBrowserXhr" enthält, muss sich auf demselben Dienst befinden, den ich auch geschrieben habe? oder vielleicht eine neue Datei? oder vielleicht auf meinem main.ts? Tut mir leid, ich habe Schwierigkeiten, dieses zu implementieren. –