我使用此方法登录:
doLogin(username, password){
return this.http.post(Config.BASE_URL + '/login',{
username: username,
password: password
})
}
我想将header参数添加到此范围:
doLogin(username, password){
return this.http.post(Config.BASE_URL + '/login',{
username: username,
password: password,
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
}
我检查了控制台,它没有发送标头。怎么了?我该如何解决?
答案 0 :(得分:1)
你需要在一个叫做标题的Json变量中发送你的Headers,如:
return this.http.post(Config.BASE_URL + '/login', body, { headers: this.headers });
你正在发送你身体内的标题。
答案 1 :(得分:0)
使用Angular的http模块中的Headers
:
import { Http, Headers } from '@angular/http';
let header1 = 'test';
let header2 = 'test2';
let headers = new Headers();
headers.append('header1', header1);
headers.append('header2', header1);
doLogin(username, password){
return this.http.post(Config.BASE_URL + '/login',{
username: username,
password: password,
headers: headers
})
}
答案 2 :(得分:0)
您的代码存在的问题是您正在发送正文中的标题。请尝试以下代码段
doLogin(username, password){
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
return this.http.post(Config.BASE_URL + '/login',{username:username,password:password},{headers:headers})
}
如果您想使用x-www-form-urlencoded
发帖
您可以使用URLSearchParams
作为请求的正文,而angular会自动将内容类型设置为application/x-www-form-urlencoded
并正确编码正文。
let body = new URLSearchParams();
body.set('username', username);
body.set('password', password);
this.http.post(Config.BASE_URL + '/login', body).map(...);
答案 3 :(得分:0)
如果对发送身份验证凭据感兴趣
let headers = new Headers();
headers.append('Authorization' , 'Basic ' +
btoa(username
+ ':' + password));
headers.append('Content-Type' , 'application/x-www-form-urlencoded; charset=UTF-8');
this._http.get(url , {headers:headers});
答案 4 :(得分:0)
let headers = new Headers();
headers.append('Content-Type', 'application/json');
let options = new RequestOptions({ headers: headers });
return this.http.post(Config.BASE_URL + '/login',{
username: username,
password: password
} , options)