簡體   English   中英

響應重定向(302)在角度不起作用

[英]response redirection(302) not work in angular

我設計了一個angular的SSO(Single Sign-On)登錄頁面,以及spring boot框架單獨開發的登錄服務。

在 angular 應用程序中,當提交登錄表單時,登錄服務通過 HttpClient 模塊使用 post-HttpMethod 調用。 在登錄服務中,如果用戶名和密碼正確,那么在登錄服務的結果中,將響應狀態設置為 302 並在響應的標題中添加特定的 URL。 在這種情況下,我希望瀏覽器重定向到特定的 URL,但這並沒有發生。

我在 Firefox 中跟蹤請求和響應與附加圖片相同Firefox 網絡選項卡 .

  1. 發送登錄后請求,響應為 302,頭部位置為服務器響應中設置的特定 URL
  2. 瀏覽器向響應頭的位置 URL 發送選項請求並獲得 200 結果
  3. 瀏覽器向目標 URL 發送 get 請求(header 位置為具體 URL),此時瀏覽器並沒有打開目標 URL,只是響應為 200。

我更改了響應的 Location 標頭,發現重定向沒有執行(只是登錄請求和選項請求完成),下圖是請求跟蹤。 Firefox 網絡選項卡

我懷疑您的請求是 XHR 請求。 如果是這樣,瀏覽器會在處理程序中跟蹤它們,但不會將整個頁面導航到重定向位置。

如果您想模擬為整個頁面請求發送重定向時發生的情況,您可能需要更改后端,使其返回 200,其中包含有效負載中原始重定向的目標位置,然后將頁面重新加載到該位置位置(類似於window.location = payload.redirectLocation )。

您也可以去掉重定向,讓后端根據認證成功返回 200 或 401,然后使用 angular 路由器進行導航。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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