授权Basic头文件在离子2中不起作用

时间:2018-05-05 06:59:39

标签: angular http ionic-framework ionic2

我如何设置标题。我查看了整个互联网,但当我将其发送到服务器时,它无法识别我的授权标头。你是怎么解决这个问题的?我有用户名或密码并正确设置标题,但没有设置标题。还响应401错误,因为未设置标头授权。

let username: string = 'username';
let password: string = 'password';
let headers: Headers = new Headers();
headers.append("Accept", 'application/json');
headers.append("Authorization", "Basic " + btoa(username + ":" + password)); 
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let options = new RequestOptions({ headers: headers });

var url = "http://MYURL?grant_type=password&username="name"&password="pwd""
this.http.post(url, options)
.subscribe(res => {

console.log(res['_body']);

 }, (err) => {
    console.log("Somthing went wrong!"+err);
    });

请解决我的问题如何获得适当的回复。 THANKYOU

2 个答案:

答案 0 :(得分:0)

如果您使用的是HttpClient,则可以使用此方法解决此问题 -

像这样创建选项和标题对象 -

let options: any = {};
options.headers = new HttpHeaders({ Accept: 'application/json', 
         Authorization: "Basic " + btoa(username + ":" + password),
         'Content-Type': 'application/x-www-form-urlencoded'
});

然后调用POST方法 -

    var url = "http://MYURL?grant_type=password&username='name'&password='pwd'"
this.http.post(url, options)
.subscribe(res => {

console.log(res['_body']);

 }, (err) => {
    console.log("Somthing went wrong!"+err);
    });

Alos请注意网址中名称和密码的引用。

答案 1 :(得分:0)

这是它的工作方式:

let headers = new HttpHeaders();

headers = headers.append(“ Authorization”,“ Basic” + btoa(“ username:password”));