gpt4 book ai didi

angular5 - Angular 5 中的 RequestOptions 已弃用符号错误

转载 作者:行者123 更新时间:2023-12-02 09:13:24 24 4
gpt4 key购买 nike

我正在尝试将 Angular 4 中的代码调整为 Angular 5。我做了很多更改,但出现了关于 RequestOptions 的错误。该代码是关于身份验证的,这就是我遇到错误的地方:

import { Injectable } from '@angular/core';
import { RequestOptions } from '@angular/http';
import { User } from '../model/model.user';
import 'rxjs/add/operator/map';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Injectable()
export class AuthService {
constructor(public http: HttpClient) { }

public logIn(user: User) {

const headers = new HttpHeaders();
headers.append('Accept', 'application/json')
// creating base64 encoded String from user name and password
const base64Credential: string = btoa(user.username + ':' + user.password);
headers.append('Authorization', 'Basic ' + base64Credential);
// this is where i'm having a problem :
const httpOptions = new RequestOptions();
httpOptions.headers = headers;

return this.http.get('http://localhost:8081/' + '/account/login',
httpOptions)
.map(resp => {
// login successful if there's a jwt token in the response
const user = resp.json().principal; // the returned user object is a principal object
if (user) {
// store user details in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify(user));
}
});
}


logOut() {
// remove user from local storage to log user out
return this.http.post('http://localhost:8081/' + 'logout', {})
.map(resp => {
localStorage.removeItem('currentUser');
});

}
}

错误:使用了已弃用的符号请帮我更改 Angular 5 中的代码 (RequestOptions)

最佳答案

您不应使用已弃用模块 @angular/http 中的 RequestOptions

API documentation 中所示选项现在具有以下类型:

{
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: HttpObserve;
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';
withCredentials?: boolean;
}

因此你应该写:

const headers = new HttpHeaders();
headers.append('Accept', 'application/json')
const base64Credential: string = btoa( user.username + ':' + user.password);
headers.append('Authorization', 'Basic ' + base64Credential);

this.http.get('http://localhost:8081/' + '/account/login', {
headers: headers
});

或者:

this.http.get('http://localhost:8081/' + '/account/login', {
headers: {
'Accept': 'application/json',
'Authorization': 'Basic ' + btoa(user.username + ':' + user.password)
}
});

关于angular5 - Angular 5 中的 RequestOptions 已弃用符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50489115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com