Angular 5 具有基本身份验证的 http 似乎不起作用

Angular 5 http with basic auth doesn't seem to work

我正在尝试使用 basic 身份验证发出 http.get 请求,其中我有 token 作为用户名,然后是 empty 密码。

const  headers_object = new HttpHeaders();
headers_object.append('Content-Type', 'application/json');
headers_object.append('Authorization', 'Basic ' + btoa(environment.CVRTOKEN + ':'));

const httpOptions = {
    headers: headers_object
};
const url = 'https://rest.cvrapi.dk/v1/dk/suggestions/company/' + searchString;
return this.http.get(url, httpOptions);

不过好像不行。我做错了什么?

查看控制台时出现以下错误:

VM3464:1 GET https://rest.cvrapi.dk/v1/dk/suggestions/company/3 401 (Unauthorized)

请求 headers 如下所示:

我试过你的代码,但它给我错误。尝试像这样声明 httpOptions 看看它是否有效

httpOptions = {
    headers: new HttpHeaders({
    'Content-Type':  'application/x-www-form-urlencoded',
    'Authorization': 'Basic ' + btoa(this.username + ':' + '')
   })
};

HttpHeaders 是不可变类型,这意味着 append returns HttpHeaders 新实例 而不是修改现有版本。在您的代码示例中,您实际上并未设置 Content-TypeAuthorization headers。您可以使用以下方法正确设置 headers:

const headers_object = new HttpHeaders({
    'Content-Type': 'application/json',
    Authorization: 'Basic ' + btoa(environment.CVRTOKEN + ':')
});