angular 2 http withCredentials
j'essaie d'utiliser withCredentials pour envoyer un cookie à mon service mais je ne peux pas trouver comment l'implémenter. Les docs disent "si le serveur a besoin de justificatifs d'identité, nous les activerons dans les en-têtes de requête" sans exemples. J'ai essayé plusieurs manières différentes, mais il ne sera toujours pas envoyer mon cookie. Voici mon code jusqu'à présent.
private systemConnect(token) {
    let headers = new Headers();
    headers.append('Content-Type', 'application/json');
    headers.append('X-CSRF-Token', token.token);
    let options = new RequestOptions({ headers: headers });
    this.http.post(this.connectUrl, { withCredentials: true }, options).map(res => res.json())
    .subscribe(uid => {
        console.log(uid);
    });
}
2 réponses
Essayez de changer votre code comme ceci
let options = new RequestOptions({ headers: headers, withCredentials: true });
et
this.http.post(this.connectUrl, <stringified_data> , options)...
comme vous le voyez, le second paramètre devrait être des données à envoyer (en utilisant JSON.stringify ou '') et toutes les options dans un troisième paramètre.
à partir de l'angle 4.3,HttpClient et intercepteurs ont été introduits.
un exemple rapide est montré ci-dessous:
@Injectable()
export class WithCredentialsInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        request = request.clone({
            withCredentials: true
        });
        return next.handle(request);
    }
}
constructor(
      private http: HttpClient) {
this.http.get<WeatherForecast[]>('api/SampleData/WeatherForecasts')
    .subscribe(result => {
        this.forecasts = result;
    },
    error => {
        console.error(error);
    });