Angular httpHeaders post menthod 无法设置参数
Angular httpHeaders post menthod can't set parameters
我正在尝试使用以下方法从 RestAPI 获取 authtoken。
相同的 url、Params 和 Headers returns 我来自邮递员的正确回应。
但在 angular 中,我收到 401 未经授权的错误。
请帮助我了解我做错了什么?
我无法理解为什么我的 headers 在 lazyUpdate object 里面 httpHeaders.
提前致谢。
login(loginData) {
const httpOptions = {
headers:new HttpHeaders().set("Authorization", "Basic " + btoa("username:password")).set("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").set("access-control-allow-credentials",'true'),
params:new HttpParams().set('username', loginData.email).set('password', loginData.password).set('grant_type', 'grant_type')
}
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', httpOptions).subscribe(
data => {
this.saveToken(data);
return true;
},
err => {
alert('Invalid Credentials')
return false;
});
}
请查看从浏览器发送的 headers 的附加屏幕截图。
post
方法的第二个参数是 HTTP 调用的 body
负载。您需要使用第三个参数,用于选项。您可以为 body 参数传递一个 null
值,但是 post
没有 body 的调用通常是误用的标志。
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', null, httpOptions)
使用 HTTP header 选项作为 post 请求中的第三个参数。
login(loginData) {
let httpOptions = {
headers: new HttpHeaders({
"Access-Control-Allow-Credentials": "true",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
'Authorization' : "Basic " + btoa("username:password"),
'username': loginData.email,
'password': loginData.password,
'grant_type': 'grant_type'
})
};
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', {}, httpOptions).subscribe( data => {
this.saveToken(data);
return true;
},
err => {
alert('Invalid Credentials')
return false;
});
}
我正在尝试使用以下方法从 RestAPI 获取 authtoken。 相同的 url、Params 和 Headers returns 我来自邮递员的正确回应。 但在 angular 中,我收到 401 未经授权的错误。 请帮助我了解我做错了什么? 我无法理解为什么我的 headers 在 lazyUpdate object 里面 httpHeaders.
提前致谢。
login(loginData) {
const httpOptions = {
headers:new HttpHeaders().set("Authorization", "Basic " + btoa("username:password")).set("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").set("access-control-allow-credentials",'true'),
params:new HttpParams().set('username', loginData.email).set('password', loginData.password).set('grant_type', 'grant_type')
}
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', httpOptions).subscribe(
data => {
this.saveToken(data);
return true;
},
err => {
alert('Invalid Credentials')
return false;
});
}
请查看从浏览器发送的 headers 的附加屏幕截图。
post
方法的第二个参数是 HTTP 调用的 body
负载。您需要使用第三个参数,用于选项。您可以为 body 参数传递一个 null
值,但是 post
没有 body 的调用通常是误用的标志。
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', null, httpOptions)
使用 HTTP header 选项作为 post 请求中的第三个参数。
login(loginData) {
let httpOptions = {
headers: new HttpHeaders({
"Access-Control-Allow-Credentials": "true",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
'Authorization' : "Basic " + btoa("username:password"),
'username': loginData.email,
'password': loginData.password,
'grant_type': 'grant_type'
})
};
this.http.post('http://xx.xx.xx.xx:xxxxx/oauth/token', {}, httpOptions).subscribe( data => {
this.saveToken(data);
return true;
},
err => {
alert('Invalid Credentials')
return false;
});
}