1

これに関して何かを見つけましたが、ほとんどの例と説明は非推奨であり、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 を使用して呼び出しを行う必要があります。助けはありますか?

4

1 に答える 1

0

BrowserXhrRC1 では、クラスを拡張する必要があります。

@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 })
]);

withCredentials今後の RC2 では、リクエスト オプションで属性を使用できるようになります。

詳細については、次のリンクを参照してください。

于 2016-06-07T14:18:14.570 に答える