我正在尝试使用基本身份验证访问URL。
URL返回JSON数据。
如何在下面的http请求中添加用户名和密码?
private postsURL = "https://jsonExample/posts";
getPosts(): Observable<AObjects []>{
return this.http.get<AObjects[]>(this.postsURL);
}
答案 0 :(得分:4)
我不知道在获得授权后究竟要做什么,但是要使用具有基本身份验证的简单调用来获得授权,您需要这样做:
let authorizationData = 'Basic ' + btoa(username + ':' + password);
const headerOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': authorizationData
})
};
this.http
.get('{{url}}', { headers: headerOptions })
.subscribe(
data => { // json data
console.log('Success: ', data);
},
error => {
console.log('Error: ', error);
});
答案 1 :(得分:2)
请参阅https://angular.io/guide/http或https://v6.angular.io/guide/http#adding-headers
import { HttpHeaders } from '@angular/common/http';
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('username:password')
})
};
然后使用标题:
return this.http.get<AObjects[]>(this.postsURL, httpOptions);