簡體   English   中英

后端Angular 2 + Spring Boot中未收到授權標頭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM