我发现了一些与此相关的内容,但大多数示例和解释都已弃用,并且不适用于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进行调用。有什么帮助吗?
答案 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
属性。
有关详细信息,请参阅以下链接: