2

我試圖從post請求中獲取響應頭,但HttpResponse對象不包含我在網絡中可以看到的相同頭。我究竟做錯了什麼?我需要訪問Apiproxy-Session-Id密鑰的值,並且它不在HttpHeaders中。在Angular中從HttpClient post請求獲取響應頭文件?

這是我的代碼來執行發佈請求並記錄完整響應,其中http是一個HttpClient對象。

this.http.post('http://localhost:8081/user/login', JSON.stringify(requestBody), {observe: 'response'}).subscribe(resp => { console.log(resp); });

This is the response I'm logging.

These are the headers I'm seeing in the network.

我新的角度和這個非常難住了。謝謝你的幫助!

+0

您的問題解決了嗎? – theLearner

回答

2

man。我在這裏有同樣的問題。由於您的後端和前端位於不同的域中,因此某些響應的標頭默認情況下不會公開。

您可以嘗試兩種不同的方法:

1.代理您的角度

請求此代理會使你的後端想請求從薩韋域來了。請參閱this doc瞭解如何操作。請記住,使用此選項所有標題將被公開。

2.暴露你的後端服務器

你想要的頭因爲我不知道你的後端的語言,我不能告訴你步步這樣做,但我必須在響應中做這樣的事情:response.add("Access-Control-Expose-Headers", "Apiproxy-Session-Id")

+0

謝謝!真的有幫助。這應該被接受回答 – David

+0

好男人。很高興我能幫上忙。 –

0

嘗試添加responseType: 'text'

this.http.post('http://localhost:8081/user/login', 
    JSON.stringify(requestBody), {observe: 'response', responseType: 'text'}).subscribe(resp => { 
     console.log(resp); 
    });