[英]Authorization header is not receiving in the backend Angular 2 + Spring Boot
我正在嘗試在http請求中傳遞授權標頭:
我的角度代碼是這樣的:
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Authorization', this.uriRequest.appendAuthHeaderValue());
let options = new RequestOptions({ headers: headers });
console.log(JSON.stringify(options));
this.http.post(this.urlManager.BASE_URL + this.urlManager.customerServiceURL, body, options).map(
(response) => {
console.log(JSON.stringify(response));
});
在控制台上,我可以發現在選項中我的Authorization標頭已正確設置:
{"method":null,"headers":{"Content-Type":["application/json"],"Authorization":["eyJhbGciOiJIUzIiJ9.eyJleHAiOjE1MDMyNTQ4NDIsInN1YiI6Ild25ldyIsInVzZXJJZCI6ImRlbW8iLCJyb2xlIjoiVFUiJ9.OvS69uweYIB96mQLt61RQVyoPnbY0aUhqpzUvHu40"]},"body":null,"url":null,"withCredentials":null,"responseType":null}
但是在后端,我無法獲取令牌:
我的COROS文件管理器:
HttpServletResponse res = (HttpServletResponse) response;
HttpServletRequest req = (HttpServletRequest) request;
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");
res.setHeader("Access-Control-Allow-Headers", " x-requested-with, Content-Type, Accept, Accept-Encoding, Accept-Language, Host, Referer, Connection, User-Agent, Authorization, sw-useragent, sw-version");
res.setHeader("Access-Control-Expose-Headers", "Authorization");
// Just REPLY OK if request method is OPTIONS for CORS (pre-flight)
if ( req.getMethod().equals("OPTIONS") ) {
res.setStatus(HttpServletResponse.SC_OK);
return;
}
chain.doFilter(request, response);
我得到這樣的令牌:
final String token = request.getHeader("Authorization");
請對此幫助我,我無法從這里繼續進行。
附加屏幕:
開機自檢:
如果您仍然找不到答案。 這里是。
角度標題是不可變的。 所以headers.append()實際上返回一個新的頭,而舊的頭保持不變。
您必須像這樣使用它
let headers = new Headers();
headers = headers.append("some-header", "value");
headers = headers.append("another-header", "another-value");
然后只需傳遞此標頭即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.