Angular 2 - http get withCredentials

时间:2016-06-07 14:13:10

标签: angular angular2-http

我发现了一些与此相关的内容,但大多数示例和解释都已弃用,并且不适用于RC1。

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())
} 
} 

我需要完全按照这个遗留代码进行此调用:

$(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));
                    });
                });

所以,基本上我需要使用withCredentials进行调用。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

使用RC1,您需要扩展BrowserXhr类:

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

并使用扩展名覆盖BrowserXhr提供程序:

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

使用即将推出的RC2,您将能够在请求选项中使用withCredentials属性。

有关详细信息,请参阅以下链接: