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

时间:2018-11-01 14:04:12

标签: javascript angular http basic-authentication

我正在尝试通过http.get身份验证发出一个basic请求,其中我有一个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)

请求标头如下所示:

enter image description here

2 个答案:

答案 0 :(得分:1)

我尝试了您的代码,但它给了我错误。尝试像这样声明httpOptions,以查看其是否有效

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

答案 1 :(得分:1)

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

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