【发布时间】:2017-01-17 10:01:54
【问题描述】:
如何在 Angular2 RC6 中为 http 请求添加标头? 我得到以下代码:
login(login: String, password: String): Observable<boolean> {
console.log(login);
console.log(password);
this.cookieService.removeAll();
let headers = new Headers();
headers.append("Authorization","Basic YW5ndWxhci13YXJlaG91c2Utc2VydmljZXM6MTIzNDU2");
this.http.post(AUTHENTICATION_ENDPOINT + "?grant_type=password&scope=trust&username=" + login + "&password=" + password, null, {headers: headers}).subscribe(response => {
console.log(response);
});
//some return
}
问题是,角度不添加授权标头。取而代之的是,在请求中,我可以看到以下附加标头:
Access-Control-Request-Headers:authorization
Access-Control-Request-Method:POST
并在 Accept-Encoding 中添加了 sdch:
Accept-Encoding:gzip, deflate, sdch
不幸的是,没有授权标头。如何正确添加?
我的代码发送的整个请求如下所示:
OPTIONS /oauth/token?grant_type=password&scope=trust&username=asdf&password=asdf HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: POST
Origin: http://localhost:3002
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Access-Control-Request-Headers: authorization
Accept: */*
Referer: http://localhost:3002/login
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,pl;q=0.6
【问题讨论】:
-
您是否尝试过提供自己的请求选项? stackoverflow.com/a/35047978/4102561
-
@Supamiu 不幸的是,这个解决方案不起作用。我试过: this.http._defaultOptions.headers.set('Authorization', 'Basic YW5ndWxhci13YXJlaG91c2Utc2VydmljZXM6MTIzNDU2');并得到相同的结果
-
您在问题中显示的请求是
OPTIONSpreflight 请求,您能否添加 POST 请求?(应该在您的网络选项卡中此请求之后)
标签: rest http authentication angular typescript